Ini adalah cuplikan dari kode saya:
$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);
saya mendapat
Ada kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda untuk sintaks yang benar untuk digunakan di dekat '' 15 ', 15' di baris 1
Tampaknya PDO menambahkan tanda kutip tunggal ke variabel saya di bagian LIMIT dari kode SQL. Saya mencarinya Saya menemukan bug ini yang menurut saya terkait: http://bugs.php.net/bug.php?id=44639
Itukah yang saya lihat? Bug ini telah dibuka sejak April 2008! Apa yang harus kami lakukan sementara itu?
Saya perlu membuat beberapa pagination, dan perlu memastikan datanya bersih, sql injection-safe, sebelum mengirim pernyataan sql.