以下 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;
}
最佳答案
while(($tmp = $stmt->fetchColumn()) !== false){
$arr[] = $tmp;
}
三个等号还检查变量的类型。如果函数返回的值不完全是 false
,则为 true。如果返回0
,则为true
。
关于php - 当 '0' 存在时,Mysql ORDER BY 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202746/