Вот снимок моего кода:
$fetchPictures = $PDO->prepare("SELECT *
FROM pictures
WHERE album = :albumId
ORDER BY id ASC
LIMIT :skip, :max");
$fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT);
if(isset($_GET['skip'])) {
$fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT);
} else {
$fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT);
}
$fetchPictures->bindValue(':max', $max, PDO::PARAM_INT);
$fetchPictures->execute() or die(print_r($fetchPictures->errorInfo()));
$pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC);
я получил
У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '15', 15 'в строке 1
Кажется, что PDO добавляет одинарные кавычки к моим переменным в части LIMIT кода SQL. Я посмотрел, я нашел эту ошибку, которая, как мне кажется, связана: http://bugs.php.net/bug.php?id=44639
Это то, на что я смотрю? Эта ошибка обнаружена с апреля 2008 года! Что нам пока что делать?
Мне нужно создать некоторую разбивку на страницы и убедиться, что данные чистые, безопасные для SQL-инъекций, перед отправкой оператора sql.