我有一个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();
如果没有帖子则没有显示,但如果有一个或多个帖子,则只显示一个。
有人可以告诉我为什么会这样吗?
答案 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