İşte kodumun anlık görüntüsü:
$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);
alırım
SQL sözdiziminizde bir hata var; 1. satırda '' 15 ', 15' yakınında kullanılacak doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuza bakın
Görünüşe göre PDO, SQL kodunun LIMIT kısmındaki değişkenlerime tek tırnaklar ekliyor. Baktım, ilgili olduğunu düşündüğüm bu hatayı buldum: http://bugs.php.net/bug.php?id=44639
Baktığım şey bu mu? Bu hata Nisan 2008'den beri açıldı! Bu arada ne yapmamız gerekiyor?
Sql ifadesini göndermeden önce biraz sayfalandırma oluşturmam ve verilerin temiz, sql enjeksiyonu güvenli olduğundan emin olmam gerekiyor.