微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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行的知识 – 可用于确定是否有一行被提取.由于这是访问此类查询的数据的“标准”方式,因此无需执行其他检查.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐