解决PDO-mysql中LIMIT和IN子句执行失败的问题
来源:互联网 发布:mac口红海淘攻略 编辑:程序博客网 时间:2024/05/19 16:34
- LIMIT子句执行失败
数据库连接用的是PDO,遇到分页的场景,
在sql中的"LIMIT :offset, :pageSize"执行时model层的fetchAll()返回结果为空,原因是在model层绑定参数的时候$this-bindValue($placeHolder,$paramValue);时没有显示指定参数变量的类型,
解决:
在model层增加一个selectDatatype($var)函数返回绑定参数的类型用于在bindValue时显示参数类型,
这样就可以解决这个limit子句取不到结果集的问题了。
Tips: 在bindValue的时候一致使用bindValue($placeHolder,$param,PDO::PARAM_*type*);以避免这种情况
- IN子句执行失败
像上面这样是返回空数组的,下面的有返回数据:
但是,上面这样的写法只返回IN子句里的第一个匹配项,无法返回IN子句里所有的符合的项,查了下说转成WHERE IN (?,?,?)然后在$in = '3,12,17';绑定为 $pdo->prepare($sql,$in);但是我的场景里还有其它绑定参数并且需要一致用 $stmt->bindValue(':placeHandel' => $value);这种格式进行绑定的,所以,就直接给IN子句直接传递变量 WHRE id IN ($idRange),在传递的时候记得要过滤变量以防止sql注入。
Tips: In子句中传递范围的时候直接传递变量才行。
0 0
- 解决PDO-mysql中LIMIT和IN子句执行失败的问题
- mysql中limit 和in
- PHP中PDO数据访问对象处理LIMIT子句的一处BUG
- mysql中rollup和limit的用法及where子句的优化
- mysql中limit与in不能同时使用的解决方式.
- 在Mysql中使用in子句查询和排序
- mysql的5中查询子句之五limit限制查询
- 从Yii框架分页数据“丢失”到MySQL的ORDER BY和LIMIT子句
- PDO ping 的实例 ,解决mysql has gone的问题
- PHP PDO::execute()执行insert into失败返回错误无错误消息的解决
- PHP PDO::execute()执行insert into失败返回错误无错误消息的解决
- MySql存储过程中limit不能动态参数问题的解决
- PHP 连接MAMP中 MySQL失败问题的解决
- 解决mysql 安装过程中start service失败的问题
- SQL语句执行顺序及MySQL中limit的用法
- 当WHERE子句、GROUP BY子句和HAVING子句同时出现在一个查询中时,SQL的执行顺序
- mysql中limit与in不能同时使用的解决办法
- MySQL排序limit出现的问题(已解决)
- [Java基础要义] HashMap的设计原理和实现分析
- 从华为45岁退休看IT人员的归宿
- 徒手建立一个Web应用
- ArcMap中提取影像数据边界
- java中的Iterator和Iterable 区别
- 解决PDO-mysql中LIMIT和IN子句执行失败的问题
- Runtime
- 将图片写入流,通过流的方式在界面显示
- CppPrimer笔记 Chapter13 拷贝控制
- C++Primer笔记--变量和基本类型
- java 面试题
- leetcode110. Balanced Binary Tree
- Leetcode 142. Linked List Cycle II
- Java学习日记7:文件上传和下载