我正在尝试使用 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($stmt->fetchColumn() > 0){
echo "Found";
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}else{
echo "Not found";
}
}else{
echo "Error";
}
语句成功执行,它找到了一列,就像它应该的那样,它回显“找到”,但是数组出现为空,它只是出现为 array()
一切都执行嗯,只是 fetch,或者 fetchAll()
总是返回空。任何帮助将不胜感激!
最佳答案
您正在尝试在 fetchColumn 之后获取全部。
Returns a single column from the next row of a result set or FALSE if there are no more rows.
PDOStatement::fetchAll() returns an array containing all of the remaining rows in the result set.
因此,您可以像这样重写它。
if($result = $stmt->fetchAll(PDO::FETCH_ASSOC)){
echo "Found";
print_r($result);
}else{
echo "Not found";
}
关于Php,PDO 查询,获取所有返回无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595698/