PDO El límite de la declaración de preparación no funciona [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Cómo aplicar el método bindValue en la cláusula LIMIT? 10 respuestasEstoy intentando limitar la cantidad de resultados devueltos por una consulta SQL, pero por alguna razón está devolviendo NULL. Si elimino el LIMIT, todo funciona bien. He probado la consulta en Sequel Pro y también funciona bien con el LIMIT. ¿Estoy haciendo algo mal aquí?
public static function getMostViewedPictures($limit = 5) {
$dbh = self::connectToDatabase();
$sql = "SELECT
picture.`title`,
picture.`description`,
picture.`slug`,
picture.`image`,
picture.`timestamp`,
picture.`views`,
category.category as category
FROM picture
LEFT JOIN category
ON picture.category_id = category.id
ORDER BY picture.views ASC
LIMIT 0, :limit";
$sth = $dbh->prepare($sql);
$sth->execute(array(':limit' => $limit));
if($results = $sth->fetchAll(PDO::FETCH_OBJ)) {
$pictures = array();
foreach($results as $result) {
$pictures[] = new Picture(
$result->title,
$result->description,
$result->slug,
$result->timestamp,
$result->category,
$result->views,
$result->image
);
}
return $pictures;
} else {
return null;
}
}