概述
1、PDO 中 limit
- 项目用到简单分页,开始利用PDO做。如下代码$data为array(0) {},未报错。将SQL语句复制到窗口运行却能查到数据。
$query = "SELECT * FROM order ORDER BY id LIMIT ?,?";
$pdo = new PDO('mysql:host=host;dbname=db;port=3306;charset=utf8','user','pass');
$statement = $pdo->prepare($query);
$condition = [0,10];
$statement ->execute($condition);
$data = $statement ->fetchAll(2);
var_dump($data);
- 然后查网上说如下绑定数据方式可行。但是$data依旧为array(0) {}。
$query = "SELECT * FROM order ORDER BY id LIMIT ?,?";
$pdo = new PDO('mysql:host=host;dbname=db;port=3306;charset=utf8','user','pass');
$statement = $pdo->prepare($query);
$statement->bindValue(1, 0, PDO::PARAM_INT);
$statement->bindValue(2, 10, PDO::PARAM_INT);
$statement ->execute();
$data = $statement ->fetchAll(2);
var_dump($data);
最终用拼接方式查询成功,拿到数据。字段user为字符串,变量$user前需拼接单引号,否则阿里云报错。
$offset = 0; $size = 20; $user = 'username'; $query = 'SELECT * FROM order WHERE `user` = '."'".$user."'".'ORDER BY id LIMIT'. $offset.','.$size; $pdo = new PDO('mysql:host=host;dbname=db;port=3306;charset=utf8','user','pass'); $statement = $pdo->prepare($query); $statement->execute(); $data = $statement->fetchAll(2); var_dump($data);
2、阿里云limit的奇怪之处。
在阿里云SQL窗口中运行 SELECT id FROM
order
LIMIT 0,10; 获取不到ID为7的数据
加上ORDER 排序后可获得ID为1-10的数据。
- 使用*获取所有字段,不用OEDER排序,可获得ID为1-10条数据。具体原因,尚不清楚。
最后
以上就是时尚黑猫为你收集整理的PHP PDO中不能使用limit,阿里云中limit的奇怪之处的全部内容,希望文章能够帮你解决PHP PDO中不能使用limit,阿里云中limit的奇怪之处所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复