Ось знімок мого коду:
$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.