【发布时间】:2018-08-11 20:53:37
【问题描述】:
我正在使用此查询来获取行范围,例如 0-5 ,但我收到一条错误消息。
代码如下:
if(isset($_GET['page']) && isset($_GET['per'])){
$per = $_GET['per'];
$pageNumber = $_GET['page'];
$from = ($pageNumber * $per) - $per;
$results = $pdo->prepare('SELECT * FROM users LIMIT :sfrom , :sto');
$results->execute(array('sfrom' => $from , 'sto' => $per));
}
我收到以下错误:
致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 ''5' , '5'' 附近使用的正确语法
我认为这是因为 $from 和 $per 是作为字符串插入的,或者我尝试使用 (int)$from 、 (int)$per 将它们转换为 int 的东西
但是还是有同样的错误
【问题讨论】:
-
您可以编辑您的代码以包含应用了强制转换的版本吗?那应该可以解决它。
-
请注意,没有 ORDER BY 的 LIMIT 是毫无意义的
-
@tadman ,MYSQL 版本 4.6.5.2 ,它在我设备上的 Xampp 上运行
-
@jack 这不是我要问的。我的意思是带有
(int)的代码版本。