2014-11-08 2 views
0

У меня есть этот запрос:PHP: rowCount() теперь точный подсчет?

$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 предметы вместо одного! (и консалтинг от phpMyadmin приводит к 2).

enter image description here

Почему это не точно? Я читал this post о том, что функция не всегда точна с помощью SELECT, но есть ли простая альтернатива?

+0

В PHP, вы просто попросите счет, это всегда только 1 значение в сверку. – Croises

ответ

3

Вы путаете количество возвращаемых строк (1) со значением, возвращаемым (2). Ваш запрос «SELECT count (*) ГДЕ« всегда »будет возвращать 1 строку (если только вы не выполняете группу). эта строка содержит один столбец - значение этого столбца будет равным счету-2 в вашем случае.

0

Попробуйте

echo $butacas->fetchColumn(); 

вместо

echo $butacas->rowCount(); 
Смежные вопросы