$sql = "SELECT sql_calc_found_rows * FROM members".
" ORDER BY username LIMIT :startRow, :numRows";
try {
$st = $conn->prepare($sql);
$st->bindParam(":startRow", $startRow, PDO::PARAM_INT);
$st->bindParam(":numRows", $numRows, PDO::PARAM_INT);
$st->execute();
} catch (PDOException $e) {
die("Query failed: " . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)
我在这里得到错误:
查询失败:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的"5"附近使用正确的语法.
该LIMIT :startRow, :numRows中有问题:numRows.
我曾经尝试都$st->bindParam和$st->bindValue,两人都没有工作.
Suj*_*tha -2
我解决了。我输入了:numRows占位符。
$numRows=(int)$numRows;
$sql = 'SELECT sql_calc_found_rows * FROM ' .
TBL_MEMBERS .'ORDER BY'. $order .'LIMIT :startRow,:numRows';
try {
$st = $conn->prepare($sql);
$st->bindValue(":startRow", $startRow, PDO::PARAM_INT);
$st->bindValue(":numRows", $numRows, PDO::PARAM_INT);
$st->execute();
...
Run Code Online (Sandbox Code Playgroud)
它奏效了。我还注意到'应该使用 代替".
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |