Php Mysql在';0';存在

Php Mysql在';0';存在,php,mysql,Php,Mysql,下面的SQL片段将返回任意数量条目的结果,直到插入一行,该行的累积分数为0。一旦我这样做了,我就不会得到任何结果cumulativescore是一个INT字段,没有任何限制 $stmt = $dbh->prepare(" select cumulativescore from reporting order by cumulativescore asc "); 更新 我想当我使用下面的代码时,fetchColumn会为第一列返回0,

下面的SQL片段将返回任意数量条目的结果,直到插入一行,该行的累积分数为
0
。一旦我这样做了,我就不会得到任何结果
cumulativescore
是一个INT字段,没有任何限制

$stmt = $dbh->prepare("
   select
      cumulativescore
   from 
      reporting
   order by
      cumulativescore asc
");
更新

我想当我使用下面的代码时,
fetchColumn
会为第一列返回0,因为它是按升序排列的,这打破了我的循环。我所说的无结果是指
$arr
为空,但从本例中我了解到,这不是测试查询的最佳方法。如何使用
fethchColumn
并具有
0
值?或者我需要作为关联数组进行获取并以这种方式获取值吗?作为旁注,测试PDO结果集的值/etc最合适的方法是什么

while($tmp = $stmt->fetchColumn()){
   $arr[] = $tmp;
}

三个等号也检查变量的类型。如果函数返回not
false
准确,则为真。如果它返回
0
这是
true

您最好发布表结构以获得更好的视图。没有结果意味着错误?如果是这样,请添加错误消息。我说的是我的意思,说的是我的意思:)。没有错误,没有结果。您确定该表包含任何记录吗?当您删除“order by”时是否会得到不同的结果?是的,当然可以。如果没有order by,则返回所有行,除了
累积分数为零的行。太棒了,我不知道我怎么会没有想到这一点。
while(($tmp = $stmt->fetchColumn()) !== false){
   $arr[] = $tmp;
}