PHP:rowCount()现在准确计数?

时间:2014-11-08 23:27:43

标签: php mysql pdo

我有这个问题:

$butacas= $this->pdo->prepare('SELECT COUNT( * ) FROM `usuarios` WHERE `sala` LIKE :nombreSala');
$butacas->bindValue(':nombreSala', $nombreSala);
$butacas->execute();
echo $butacas->rowCount();

此查询产生一个整数:1

如果我将:nombreSala替换为数据库中实际存在的值,例如:

SELECT COUNT( * ) FROM usuarios WHERE sala LIKE 'salaChica'

仍然会导致1。

现在,当用phpMyadmin检查数据库时,我意识到使用该值(salaChica)有2个项而不是1个! (并从phpMyadmin咨询确实导致2)。

enter image description here

为什么不准确?我已经阅读过this post关于该功能并不总是准确的SELECT,但有一个简单的替代方案吗?

2 个答案:

答案 0 :(得分:3)

您将返回的行数(1)与返回的值(2)混淆。 您的查询“SELECT count(*)WHERE whatever”将始终返回1行(除非您执行分组)。该行包含一个列 - 该列的值将是计数 - 在您的情况下为2。

答案 1 :(得分:0)

尝试

echo $butacas->fetchColumn();

而不是

echo $butacas->rowCount();