我正在尝试使用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";
}
语句成功执行,它找到一个列,就像它应该的那样,并且它回显“Found”,但是数组出现为空,它只是出现array()
一切都运行良好,就是这样获取,或fetchAll()
始终返回空。任何帮助将不胜感激!
答案 0 :(得分:2)
你试图在fetchColumn之后fetchAll。
从结果集的 next 行返回单个列,如果是,则返回FALSE 没有更多的行。
PDOStatement :: fetchAll()返回一个包含所有内容的数组 结果集中的剩余行。
所以,你可以像这样重写它。
if($result = $stmt->fetchAll(PDO::FETCH_ASSOC)){
echo "Found";
print_r($result);
}else{
echo "Not found";
}