Oto migawka mojego kodu:
$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);
dostaję
Masz błąd w składni SQL; sprawdź podręcznik, który odpowiada Twojej wersji serwera MySQL, aby uzyskać właściwą składnię, której należy użyć w pobliżu „15”, 15 ”w wierszu 1
Wygląda na to, że PDO dodaje pojedyncze cudzysłowy do moich zmiennych w części LIMIT kodu SQL. Sprawdziłem to i znalazłem ten błąd, który moim zdaniem jest powiązany: http://bugs.php.net/bug.php?id=44639
Czy na to właśnie patrzę? Ten błąd jest otwarty od kwietnia 2008! Co mamy robić w międzyczasie?
Muszę zbudować paginację i upewnić się, że dane są czyste, bezpieczne dla iniekcji sql, przed wysłaniem instrukcji sql.