$query=$db->prepare("SELECT *...
while($data=$query->fetch(PDO::FETCH_ASSOC)){...}
我有一个查询使用while循环打印出数据。
如何检查while循环是否未获取任何数据(db中的0行),因此我可以在屏幕上打印“0 result”。
我不想对COUNT(*)进行额外查询,是否可以通过while循环进行检查?
答案 0 :(得分:1)
您必须先使用$sth = $query->execute()
(和$sth->fetch()
代替$ query-> fetch()),然后$sth->rowCount
会为您提供结果数。
答案 1 :(得分:0)
只需在循环中放置一个标记,以确保至少输入一次。
类似的东西:
$flag = false;
$query=$db->prepare("SELECT *...");
while($data=$query->fetch(PDO::FETCH_ASSOC)){
$flag = true;
}
if ($flag) {} //entered
添加分号,感谢@Fred -ii
答案 2 :(得分:0)
所以你想要计算你得到的结果数量。在这种情况下,您可以在循环内计算var:
while($data=$query->fetch(PDO::FETCH_ASSOC)){
$i++;
//your code here
}
如果您想检查是否没有数据,可以查看$data
:
while($data=$query->fetch(PDO::FETCH_ASSOC)){
if($data === false) {
echo "0 result";
}
}