テーブル内のすべての投稿を取得する関数を作成しようとしています。オプションの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]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。/Applications/MAMP/htdocs/sandbox/blog2/functions.php:19スタックトレース:#0 / Applicationsの1行目の「1」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。 /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}が19行目の/Applications/MAMP/htdocs/sandbox/blog2/functions.phpにスローされます
誰かが私がどこで間違っているのか教えてもらえますか?