在我使用此代码计数行之前
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;
}
答案 0 :(得分:3)
在第二个代码中,查询将始终返回1行-以count
列为行数的行,因此...
$numrowsresultdelivery =count($resultdeliverys);
可能永远为1,您需要类似...
$numrowsresultdelivery =$resultdeliverys[0]['count'];
从结果的第一行提取count
字段。
(请注意,我不知道这是否是正确的表示法,但这是从结果中获取字段而不是结果数的原则。)
答案 1 :(得分:2)
您必须已经通过$resultdeliverys->count
获得了计数数字。
$sqldelivery = "SELECT COUNT(*) as count FROM orders WHERE DATE(reattemptdate) = CURDATE()";
$resultdeliverys = $db_handle->runSelectQuery($sqldelivery);
// Try this to know if it's returning array or object
var_dump($resultdeliverys);