Php、PDO查询、fetch all不返回任何内容
我试图使用fetchALL()从Select语句中获取结果,但由于某些原因,任何操作都不起作用。以下是代码示例:Php、PDO查询、fetch all不返回任何内容,php,mysql,database,pdo,Php,Mysql,Database,Pdo,我试图使用fetchALL()从Select语句中获取结果,但由于某些原因,任何操作都不起作用。以下是代码示例: $vars = array(':name' => $_POST['name'], ':id' => $_POST['id']); $stmt = $dbh->prepare("SELECT * FROM temp_table WHERE name=:name AND id=:id"); if($stmt->execute($vars)){ if($
$vars = array(':name' => $_POST['name'], ':id' => $_POST['id']);
$stmt = $dbh->prepare("SELECT * FROM temp_table WHERE name=:name AND id=:id");
if($stmt->execute($vars)){
if($stmt->fetchColumn() > 0){
echo "Found";
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}else{
echo "Not found";
}
}else{
echo "Error";
}
语句执行成功,它找到了一列,就像它应该找到的一样,它回显“Found”,但数组显示为空,它显示为
array()
一切都执行得很好,只是fetch,或者fetchAll()
总是返回空。任何帮助都将不胜感激 您正在尝试在fetchColumn之后获取所有内容
从结果集的下一行返回一列,如果
没有更多的行了
PDOStatement::fetchAll()返回包含所有
结果集中剩余的行
所以,你可以这样重写它
if($result = $stmt->fetchAll(PDO::FETCH_ASSOC)){
echo "Found";
print_r($result);
}else{
echo "Not found";
}
如果在MySQL监视器中运行SQL语句,您会看到什么?有多少行?假设您的查询只返回一行,
fetch\u column()
正在获取它以提取列数据。当你调用fetchAll()
时,数据已经被提取出来了,不再有了。^你完全正确,我现在得到了,哈哈,谢谢你,就是这样,我在发布这个问题后也确实找到了答案,哈哈,谢谢你的帮助!和+1表示正确答案!