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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...