我正在尝试创建一个函数来获取表格中的所有帖子。我还想添加一个可选的 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 ;
}
}
如果我在不使用限制参数的情况下调用该函数,它会起作用并显示所有帖子。但如果我这样调用函数: get_all_posts($conn, "1"); 然后我得到这个错误:
致命错误:未捕获异常 'PDOException' 并带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 /Applications/MAMP/htdocs/sandbox/blog2/functions.php:19 中的第 1 行的“1”附近使用正确的语法 堆栈跟踪:#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} 在第 19 行的 /Applications/MAMP/htdocs/sandbox/blog2/functions.php 中抛出
谁能告诉我我哪里出错了?