我正在使用 Slim 框架为站点构建 RESTful 后端,使用 PHP 的 PDO 来查询数据库。但是,当我尝试将参数绑定到准备好的语句时,出现以下错误:
string(206) "SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在行的 ''10'' 附近使用1"`
看起来 PDO 用单引号包围了我的绑定参数。我的路线代码如下:
$app->get("/members/next10/:offset", function($offset) use($app) {
$app->response()->header('Content-Type', 'application/json');
try {
$pdo = connectToDatabase();
$query = $pdo->prepare("SELECT * FROM `members` LIMIT 10 OFFSET :offset");
$query->bindParam(":offset", $offset, PDO::PARAM_INT);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
if (!empty($result)) {
echo json_encode($result);
} else {
$app->response()->status(404);
}
} catch (PDOException $d) {
$app->response()->status(500);
var_dump($d->getMessage());
}
});
我错过了什么吗?我尝试:offset
从 URL 中获取并$offset
在绑定之前将其分配为整数,但这也没有什么区别。