php – 检测PDO-> execute是否返回行/记录?

前端之家收集整理的这篇文章主要介绍了php – 检测PDO-> execute是否返回行/记录?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
代码示例;
$stmt = $db->prepare('SELECT u.username,u.display_name FROM users u WHERE u.id = :userId');
$stmt->bindValue(':userId',10);
$stmt->execute();

使用准备 – >执行.如果您确定查询将返回最多1行;是否有一种简单的方法来查看查询是否确实返回了一行?我看到每个人都在’rowCount’上验证,但是有没有更清洁的方式?

这篇文章http://www.christiansouth.com/php/pdo-getting-started-part-2-pdostatement/
状态;

TRUE if the query was successful FALSE if it wasn’t. The stumble here
is it will ONLY return FALSE if the sql has an error. So if the sql is
valid but return no rowset you will still get a TRUE return value.

这个陈述是否正确?因为PHP.net只谈到:

Returns TRUE on success or FALSE on failure.

所以,再次提出问题:

>是否真的无法验证是否使用$stmt(在上面的示例中)返回了一行
布尔值?
>有没有任何解决方案看起来更干净,然后’rowCount’在if中敲击?

使用结果集(即 fetch):是否有一行?

具有0条记录的结果集在“工作正常”方面仍然完全有效,并且是每次执行有效查询时返回TRUE的原因.在这种情况下,FALSE应仅被视为异常条件.

另一方面,(第一次)获取的结果 – 结合查询只返回0..1行的知识 – 可用于确定是否有一行被提取.由于这是访问此类查询的数据的“标准”方式,因此无需执行其他检查.

原文链接:https://www.f2er.com/php/444947.html

猜你在找的PHP相关文章