首页 > 解决方案 > 使用 Count 给出错误的行数

问题描述

在我使用此代码计算行之前

echo $db_handle->numRows("SELECT * FROM orders WHERE DATE(reattemptdate) = CURDATE()");

比我发现它对性能的影响,比我尝试使用下面的代码,但它没有给出正确的行数,我在下面的代码中做错了什么?

$sqldelivery = "SELECT COUNT(*) as count FROM orders  WHERE DATE(reattemptdate) = CURDATE()";
$resultdeliverys = $db_handle->runSelectQuery($sqldelivery); 
$numrowsresultdelivery =count($resultdeliverys);         
echo $numrowsresultdelivery;

数据库连接代码

function numRows($query) {
        $result  = mysqli_query($this->conn,$query);
        $rowcount = mysqli_num_rows($result);
        return $rowcount;
    }

标签: phpsql

解决方案


在您的第二个代码中,查询将始终返回 1 行 - 列count是行数的行,所以......

$numrowsresultdelivery =count($resultdeliverys);

可能永远是 1,你需要类似...

$numrowsresultdelivery =$resultdeliverys[0]['count'];

count从结果的第一行中提取字段。(注意我不知道这是否是正确的表示法,但它的原则是需要结果中的字段而不是结果的数量。)


推荐阅读