下面的SQL片段会返回我想要的任意数量条目的结果,直到我为累积分数插入值为0
的行。一旦我这样做,我没有得到任何结果。 cumulativescore
是一个INT字段,没有任何约束。
$stmt = $dbh->prepare("
select
cumulativescore
from
reporting
order by
cumulativescore asc
");
更新
我认为发生的事情是,当我使用下面的代码时,fetchColumn
会为第一列返回0,因为它按升序排列,这会破坏我的循环。没有结果我的意思是$arr
是空的但是从这个例子中我了解到这不是测试查询的最佳方法。如何使用fethchColumn
并拥有0
值?或者我是否需要作为关联数组获取并以此方式获取值?作为旁注,对于值/等测试PDO结果集的最合适的方法是什么?
while($tmp = $stmt->fetchColumn()){
$arr[] = $tmp;
}
答案 0 :(得分:1)
while(($tmp = $stmt->fetchColumn()) !== false){
$arr[] = $tmp;
}
三个等号也检查变量的类型。如果函数不完全返回false
,则为true。如果它返回0
,则为true
。