我有这个问题:
$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)。
为什么不准确?我已经阅读过this post关于该功能并不总是准确的SELECT,但有一个简单的替代方案吗?
答案 0 :(得分:3)
您将返回的行数(1)与返回的值(2)混淆。 您的查询“SELECT count(*)WHERE whatever”将始终返回1行(除非您执行分组)。该行包含一个列 - 该列的值将是计数 - 在您的情况下为2。
答案 1 :(得分:0)
尝试
echo $butacas->fetchColumn();
而不是
echo $butacas->rowCount();