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 respuestas

Estoy 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;
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta