所以我以前看过这件事,但这是我的问题。我正在尝试查看用户是否发布了帖子,否则,我会显示一条消息。问题是我似乎从未收到消息。这是我的查询方式
$posts = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$posts[] = array(
'post_content' => $row['post_content'],
'likes' => $row['post_likes'],
'time' => $row['post_date'],
'id' => $row['id']
);
}
以及我如何计算
<? if(count($posts) < 1): ?>
<h1>No posts</h1>
<? endif; ?>
没有错误,并且数据库中也没有记录。
最佳答案
这行:
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
在读取最后一行后,会将
false
分配给$row
。尽管这不是一个数组,但接下来的几行将为$posts
的下一个元素分配内容因此,您将始终在
$posts
中至少获得一个元素,并且不会看到该消息。看到这个codepad您应该测试
fetch
是否为假,如果没有,则仅对其进行处理。将您的提取行更改为此:
while(($row = $stmt->fetch(PDO::FETCH_ASSOC)) !== false){
关于php - 获取计数的PHP结果返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24602038/