Ecco un'istantanea del mio codice:
$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);
ottengo
Hai un errore nella sintassi SQL; controlla il manuale che corrisponde alla versione del tuo server MySQL per la sintassi corretta da usare vicino a '' 15 ', 15' alla riga 1
Sembra che PDO stia aggiungendo virgolette singole alle mie variabili nella parte LIMIT del codice SQL. Ho cercato ho trovato questo bug che penso sia correlato: http://bugs.php.net/bug.php?id=44639
È quello che sto guardando? Questo bug è stato aperto da aprile 2008! Cosa dovremmo fare nel frattempo?
Devo creare un po 'di impaginazione e devo assicurarmi che i dati siano puliti, sql injection-safe, prima di inviare l'istruzione sql.