我试图了解PDO,并且试图从数据库返回一些值时,由于var_dump($row)
的返回而导致我不断地错误,我不知道为什么。
这是我的代码
require("db.php");
$stmt = $db->query("SELECT * FROM names");
while($row = $stmt->fetch(PDO::FETCH_ASSOC));
{
echo $row['name'] . " " . $row['surname'] . "<br>";
var_dump($row);
}
奇怪的是,当我这样操作时,它会返回所需的数据库记录。
foreach($db->query("SELECT * FROM names") as $row){
echo $row['name'] . " " . $row['surname'] . "<br>";
}
注意:是的,我知道我应该使用准备好的语句,但是我还没有提到那一部分。
答案 0 :(得分:2)
基本上是打字错误造成的
// ↓this
while($row = $stmt->fetch(PDO::FETCH_ASSOC));
{
echo $row['name'] . " " . $row['surname'] . "<br>";
var_dump($row);
}
花括号前的分号将循环与花括号中的代码解除关联,并且不执行任何操作即可遍历结果集。
false
结束时,您以var_dump($row)
结尾,因为您已经获取了最后一行,那么下一次获取将返回false。