MySQL COUNT提供不同的结果

时间:2019-04-11 02:51:41

标签: php mysql sql mysqli

如果我在PHP中使用它来计数记录,则实际上没有记录时,计数为1。但是,当我在HeidiSQL,phpmyadmin或其他任何数据库中运行相同的查询时,它给出的正确值为0。为什么会有差异?

if ($result = $mysqli->query($Query)) :
    return $result->num_rows;
    $MySQLError = ($mysqli->connect_errno) ? mysqli_error($mysqli) : "";
    $result->close();
    $mysqli->close();
    if ($MySQLError) return $MySQLError;
endif;

在这种情况下,$ Query包含:

SELECT COUNT(ID) AS UpdateCount 
FROM tablename 
WHERE ShowPage = 1 AND 
DateUpdated BETWEEN 1554345942 AND 1554950742

2 个答案:

答案 0 :(得分:-1)

如果尚未提交另一个数据库会话,则可能会发生此问题。确保没有其他尚未提交的数据库会话可以解决此问题。

答案 1 :(得分:-1)

在进行其他工作时,这个问题的答案突然打动了我,现在看来,这很明显。我在查询中使用 COUNT(ID) ,但在编程中也使用了 $ result-> num_rows 。只需删除COUNT(ID)就可以了。

SELECT ID 
FROM tablename 
WHERE ShowPage = 1 AND 
DateUpdated BETWEEN 1554345942 AND 1554950742