Я пытаюсь создать функцию, которая захватит все сообщения в таблице. Я также хотел добавить необязательный параметр LIMIT. Вот пример:
function get_all_posts($conn, $limit = 0) {
if ($limit > 0) {
$stmt = $conn->prepare("SELECT * FROM posts LIMIT :limit");
$stmt->execute(array(
':limit' => $limit
));
$results = $stmt->fetchAll();
return $results ? $results : false ;
} else {
$stmt = $conn->prepare("SELECT * FROM posts");
$stmt->execute();
$results = $stmt->fetchAll();
return $results ? $results : false ;
}
}
Если я вызываю функцию без использования параметра limit, она работает и отображает все сообщения. Но если я вызову функцию следующим образом: get_all_posts($conn, "1"); Затем я получаю эту ошибку:
Неустранимая ошибка: необработанное исключение «PDOException» с сообщением «SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «1» в строке 1 в /Applications/MAMP/htdocs/sandbox/blog2/functions.php:19 Трассировка стека: #0/Applications /MAMP/htdocs/sandbox/blog2/functions.php(19): PDOStatement->execute(Array) #1 /Applications/MAMP/htdocs/sandbox/blog2/index.php(12): get_all_posts(Object(PDO), '1') #2 {main} добавлено в /Applications/MAMP/htdocs/sandbox/blog2/functions.php в строке 19
Может ли кто-нибудь показать мне, где я ошибся?