Aquí hay una instantánea de mi código:
$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);
yo obtengo
Tiene un error en su sintaxis SQL; Consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de '' 15 ', 15' en la línea 1
Parece que PDO agrega comillas simples a mis variables en la parte LIMIT del código SQL. Lo busqué y encontré este error que creo que está relacionado: http://bugs.php.net/bug.php?id=44639
¿Es eso lo que estoy mirando? ¡Este error se ha abierto desde abril de 2008! ¿Qué se supone que debemos hacer mientras tanto?
Necesito crear algo de paginación, y necesito asegurarme de que los datos estén limpios, seguros para la inyección de sql, antes de enviar la declaración sql.