首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查PDO准备()、execute()是否至少返回一行

问检查PDO准备()、execute()是否至少返回一行
EN

Stack Overflow用户
提问于 2015-03-30 15:21:22
回答 1查看 1.5K关注 0票数 2

在转到PDO之前,我用

代码语言:javascript
复制
$result = mysqli_query ($conn, 'SELECT * FROM mytable WHERE id = 54');
if (mysqli_num_rows($result) >= 1) { ... }

若要检查查询是否返回,至少要返回一个结果。

现在,在PDO中,我在许多这样的问题(比如get number of rows with pdo)中看到,在PDO中没有直接函数来检查查询的行数(有关于使用of__$result->rowCount();的警告),而是像执行额外的查询那样的解决方案:

代码语言:javascript
复制
SELECT count(*) FROM mytable WHERE id = 54

但这可能是我想要的太多了:事实上,我不需要确切的行数,但只要至少有一个行。

如何检查准备好的语句查询是否至少返回一行?

代码语言:javascript
复制
$stmt = $db->prepare('SELECT * FROM mytable WHERE id = 54');
$stmt.execute();
... // HOW TO CHECK HERE?
EN

回答 1

Stack Overflow用户

发布于 2015-03-30 15:31:25

代码语言:javascript
复制
$stmt = $db->prepare('SELECT * FROM mytable WHERE id = 54');
$stmt.execute();
... // HOW TO CHECK HERE?

太简单了,你已经快到了。

代码语言:javascript
复制
$stmt = $db->prepare('SELECT * FROM mytable WHERE id = 54');
$stmt.execute();
$result = $stmt->fetchAll();  // Even fetch() will do
if(count($result)>0)
{
      // at least 1 row
}

如果您只想要“是”/“否”答案,那么还应该向查询中添加一个LIMIT 1,这样mysql就不会浪费查找更多行的尝试。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29350028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档