Voici un aperçu de mon code:
$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);
Je reçois
Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à votre version de serveur MySQL pour la bonne syntaxe à utiliser près de '' 15 ', 15' à la ligne 1
Il semble que PDO ajoute des guillemets simples à mes variables dans la partie LIMIT du code SQL. Je l'ai recherché, j'ai trouvé ce bug qui, je pense, est lié: http://bugs.php.net/bug.php?id=44639
Est-ce ce que je regarde? Ce bug est ouvert depuis avril 2008! Que devons-nous faire en attendant?
J'ai besoin de créer une pagination et de m'assurer que les données sont propres, sécurisées pour l'injection SQL, avant d'envoyer l'instruction SQL.