Hier ist eine Momentaufnahme meines Codes:
$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);
Ich bekomme
Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von '' 15 ', 15' in Zeile 1
Es scheint, dass PDO meinen Variablen im LIMIT-Teil des SQL-Codes einfache Anführungszeichen hinzufügt. Ich habe nachgeschlagen und diesen Fehler gefunden, von dem ich denke, dass er damit zusammenhängt: http://bugs.php.net/bug.php?id=44639
Ist es das, was ich sehe? Dieser Bug wurde seit April 2008 geöffnet! Was sollen wir in der Zwischenzeit tun?
Ich muss eine Paginierung erstellen und sicherstellen, dass die Daten sauber und SQL-Injection-sicher sind, bevor ich die SQL-Anweisung sende.