Php 获取结果时发生PDO错误

Php 获取结果时发生PDO错误,php,pdo,row,fetch,fetchall,Php,Pdo,Row,Fetch,Fetchall,我试图使用PDO显示一个简单的select语句的结果 <?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 passwo

我试图使用PDO显示一个简单的select语句的结果

<?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/>";
      }

    ?>

删除:

$users = $stm->fetchAll();

      foreach ($users as $row) {
           print $row["user"] . "-" . $row["password"] ."<br/>";
      }
$users=$stm->fetchAll();
foreach($users作为$row){
打印$row[“用户”]。“-”$row[“密码”]。“
”; }
试试这个:

while($row = $stm->fetch(PDO::FETCH_ASSOC)){
   print $row["user"] . "-" . $row["password"] ."<br/>";
}
while($row=$stm->fetch(PDO::fetch_ASSOC)){
打印$row[“用户”]。“-”$row[“密码”]。“
”; }
如果我可以猜到的话:

您已设置了
PDO::CASE_UPPER
set。
或者您的列名只是简单地自然地大写

但是…别再犹豫了,开始调查吧。干脆

var_dump($users);

看看你有什么。

为什么在使用
prepare()
时直接插入变量??您应该使用占位符,并将
$user
$password
放在
execute()
中,如果您有
未定义的索引:user
您没有发布名为
user
的字段。您确定这是您的字段名吗?可能是
用户名
?找出错误是PDO看看这个答案——我刚才不是说这是一个测试吗?它不像我在现实世界中使用它。。。我只是想让它显示一些结果。我当然知道参数绑定。我确信。。。我刚查过。也会弹出查询错误。在这种情况下,没有查询错误。只有PDO错误。那么出现了什么PDO错误?没有骰子。。。这很烦人,因为我只是在没有PDO的情况下做的,而且它很有效。。。我一开始使用PDO,事情就发生了。这是我在这个重要问题上唯一没有动的该死的东西。我试着。。。让事情变得简单,这样某人。。。他发表了建设性的评论。非常感谢,你就是那个人。
var_dump($users);