Странная проблема с mysql запросом

Рейтинг: 0Ответов: 1Опубликовано: 19.12.2014

Есть такой запрос:

SELECT `news`.*, `user`.`name` FROM `news` JOIN `user` ON `news`.`author` = `user`.`id` ORDER by `news`.`id` DESC LIMIT :first, :pages

php:
$news = $pdo->prepare("SELECT `news`.*, `user`.`name` FROM `news` JOIN `user` 
ON `news`.`author` = `user`.`id` ORDER by `news`.`id` DESC LIMIT :first, :pages ");
$news->execute(array(':first' => $first, ':pages' => ONPAGE));
$allnews = $news->fetchAll(PDO::FETCH_ASSOC);

Вардамп запроса:
object(PDOStatement)#3 (1) { ["queryString"]=> string(130) "SELECT `news`.*, `user`.`name` FROM `news` JOIN `user` ON `news`.`author` = `user`.`id` ORDER by `news`.`id` DESC LIMIT '0', '10' " }

Он выбирает новости с базы данных. В first и pages инт значения, в запрос они тоже попадают, проверял вардампом, но получаемый массив почему-то пустой. Когда подставляю в запрос числа всё работает. Почему так?

Ответы

▲ 1Принят

Ну так... Вы лимит по строке сделать пытаетесь, а надо по числам. Посмотрите примеры c PARAM_INT, либо обновите сервер, т.к. это вроде багом является (см. SO)