PDO rowCount只返回一个

时间:2016-11-01 06:44:16

标签: php mysql pdo

我有一个SELECT查询,如下所示:

$stmnt = $conn->prepare("SELECT post_title, posts_cat FROM posts WHERE posts_cat=:posts_cat");
$stmnt->execute(array(':posts_cat' => $cat_id));
$post_info = $stmnt->fetch();
$count = $stmnt->rowCount();

如果没有帖子则没有显示,但如果有一个或多个帖子,则只显示一个。

有人可以告诉我为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

请不要将rowCount()用于选择查询
使用count()的其他查询来计算行数

$sql = "SELECT count(*) FROM `posts` WHERE posts_cat = :posts_cat"; 
$stmnt = $conn->prepare($sql); 
$stmnt->execute(array(':posts_cat' => $cat_id)); 
$count = $stmnt->fetchColumn(); 

答案 1 :(得分:0)

当然您获得了正确的返回行数。 1表示只找到一行。如果要查找更多行,请向数据库中添加更多行以匹配条件。

是否需要这样的功能 - 是另一个问题,已经回答in this post