php - 当 '0' 存在时,Mysql ORDER BY 不工作

标签 php mysql

以下 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/

相关文章:

MySQL如何在tsv文件中导入不同的字符集

php - Symfony 4 软删除与 Doctrine ORM

php - Google Analytics(分析)API(Analytics.php)不支持prettyPrint选项

javascript - 如何将 ajax post 连接到 PHP 文件中的特定条件?

MySQL 仅从最新日期获取列的 SUM

php - 查找存储为 varchar 的两个日期时间列之间的时间差

php - Laravel 取消散列值?

php - symfony用较低的函数创建数据库索引

php - MySQL - 使用 mysql_fetch_assoc 移动到下一个结果

php - 准备语句无法插入四个变量中的两个