Ошибка PDO при получении результатов
Я пытаюсь показать результаты из простого оператора выбора с помощью PDO
<?php
// Define and perform the SQL SELECT query
include('config.inc');
$user = $_POST['user'];
$password = $_POST['password'];
$sql = "SELECT * FROM usuarios where user = '$user' AND password ='$password'";
$stm = $db->prepare($sql);
$stm->execute();
// here you go:
$users = $stm->fetchAll();
foreach ($users as $row) {
print $row["user"] . "-" . $row["password"] ."<br/>";
}
?>
И единственное, что я получаю, это ошибки вроде этой:
Неопределенный индекс: пользователь в C:\wamp\www\proyect\select.php в строке 16
Возможно, это что-то действительно простое, что я могу пропустить в этом тесте, я работаю с PHP 5.3.5.
Это включенный файл:
<?php
$dsn = 'mysql:host=localhost;dbname=carrito';
$username = 'root';
$password = 'root';
try {
$db = new PDO($dsn, $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
$error_message = $e->getMessage();
//include('db_error.php');
echo $error_mesage;
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
exit();
}
?>
2 ответа
Решение
Если я могу догадаться:
у тебя есть PDO::CASE_UPPER
задавать. http://www.php.net/manual/en/pdo.constants.php
или имя вашего столбца просто в верхнем регистре.
Но... перестань удивляться и начни расследование. Просто делай
var_dump($users);
чтобы увидеть, что у вас есть.
Удалить:
$users = $stm->fetchAll();
foreach ($users as $row) {
print $row["user"] . "-" . $row["password"] ."<br/>";
}
И попробуйте это:
while($row = $stm->fetch(PDO::FETCH_ASSOC)){
print $row["user"] . "-" . $row["password"] ."<br/>";
}