PDO Prepare Statement Limit funktioniert nicht [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie wird die bindValue-Methode in der LIMIT-Klausel angewendet? 10 AntwortenIch versuche, die Anzahl der von einer SQL-Abfrage zurückgegebenen Ergebnisse zu begrenzen, aber aus irgendeinem Grund wird NULL zurückgegeben. Wenn ich das LIMIT entferne, funktioniert alles einwandfrei. Ich habe die Abfrage in Sequel Pro getestet und es funktioniert auch gut mit dem LIMIT. Mache ich hier etwas falsch?
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;
}
}