【发布时间】:2023-04-10 17:14:01
【问题描述】:
我正在尝试使用 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() 一切执行良好,只是获取,或fetchAll() 总是返回空。任何帮助将不胜感激!
【问题讨论】:
-
如果您在 MySQL 监视器中运行该 SQL 语句,您会看到什么?多少行?
-
假设您的查询只返回一行,
fetch_column()正在获取它以提取列数据。然后,当您调用fetchAll()时,数据已经被提取并且没有更多了。 -
^ 你完全正确,我现在明白了,哈哈,谢谢大家