REVES
@REVES

Почему запрос SELECT COUNT(*) выдает ошибку а не возвращает '0', если нет записи соответствующей 'WHERE'?

Допустим, дана категория с '$cat_id = 5' .
Мне нужно узнать количество записей, где category_id = 5 . (Заранее скажу - записей с category_id = 5 в таблице нету)

В phpmyadmin пишу запрос:
SELECT COUNT(*) FROM table_name WHERE category_id = 5
Возвращает столбец COUNT со значением '0'. Всё верно!

В PHP пишу запрос:
$database->query('SELECT COUNT(*) AS count FROM table_name WHERE category_id = :category_id');
$database->bind(':category_id', $cat_id);
$result = $database->single();
$favs_count = $result['count'];
Выдает ошибку:
...MySQL server version for the right syntax to use near '-15, 15' at line 1...

ПРИМЕЧАНИЕ: Если подставить в $cat_id значение, которое есть в записях в таблице, то всё работает: как в phpmyadmin, так и в php. Но! Мне нужно чтобы при отсутствии записей с '$cat_id = 5' в массиве result['count'] был: FALSE или '0'...
  • Вопрос задан
  • 3746 просмотров
Пригласить эксперта
Ответы на вопрос 1
nobodynoone
@nobodynoone
Ну вы посмотрите внимательно на ошибку, насколько я понял, написано, что в запросе синтаксическая ошибка, попробуйте сделать вот так

$database->query('SELECT COUNT(*) AS count FROM table_name WHERE category_id = :category_id');
$database->bind(':category_id', abs(intval($cat_id)));
$result = $database->single();
$favs_count = $result['count'];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы