这个问题在这里已有答案:
在mysql_query中,我们可以通过执行以下操作来检查查询是否已执行:
$query = $yourdbconnection->fetch_array(mysql_query("SELECT * FROM tbl_name"));
if ($query){ // query is working }
else { // query is not working }
在PDO中,我正在做这样的事情:
$query = $yourdbconnection->query("SELECT * FROM tbl_name");
$fetchquery = $query->fetchAll();
if ($fetchquery) { // query is working}
else { // query not working}
我的代码有效吗? if
语句到底在做什么?是否正在做 mysql_query
正在做的事情?如何检查查询是否返回0行?
[EDIT]
我发现这些解决方案是解决问题的方法
- 使用
$stmt->fetch()
准备($的SQL); $ stmt->执行();
if ($data = $stmt->fetch()) {
do {
echo $data['model'] . '<br>';
} while ($data = $stmt->fetch());
} else {
echo 'Empty Query';}
?>
- 添加另一个查询来计算行数,请参阅this answer
但是,我仍在寻找更好的解决方案
2 回答
要查看您的查询是否已执行,我建议您将PDO设置为异常模式,例如您的常识建议 . 你可以这样做:
关于检查查询是否在PDO中返回值的最佳方法,我建议只执行
SELECT COUNT(*) FROM table
查询,如下所示:如果您有任何其他问题,请与我们联系 .
你的帖子中有2个问题 .
检查返回的值
如tag wiki所述,在异常模式下设置PDO
顺便说一句,对于
"SELECT * FROM tbl_name"
查询,您可能希望使用fetchAll()
而不是fetch()
.