Ошибка 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/>";
}
Другие вопросы по тегам