ThinkPHP3.1新特性之查询条件预处理简介


Posted in PHP onJune 19, 2014

以往的ThinkPHP3.0版本对数组方式的查询条件会进行安全过滤(这是由于3.0强制使用了字段类型检测,所以数组方式的查询条件会强制转换为字段的设定类型),但是3.0版本并不支持字符串条件的安全过滤。而ThinkPHP3.1版本则增加了对条件字符串进行预处理的支持,让ORM的安全性更加得以保证。

一、使用where方法

Model类的where方法支持字符串条件预处理,使用方式:
$Model->where("id=%d and username='%s' and
xx='%f'",array($id,$username,$xx))->select();

或者直接使用:

$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();

如果$id变量来自用户提交或者URL地址的话,如果传入的是非数字类型,则会强制格式化为数字格式后进行查询操作。

字符串预处理格式类型支持指定数字、字符串等,具体可以参考vsprintf方法的参数说明。

二、使用query和execute方法

除了where条件外,对原生SQL查询方式也支持预处理机制,例如:

$Model->query("SELECT * FROM think_user WHERE id=%d and username='%s' and xx='%f'",array($id,$username,$xx));

模型的execute方法也和query方法一样支持预处理机制。

PHP 相关文章推荐
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
Sep 28 PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
PHP实现时间日期友好显示实现代码
Sep 08 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
laravel清除视图缓存的代码
Oct 23 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 #PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 #PHP
ThinkPHP的Widget扩展实例
Jun 19 #PHP
ThinkPHP3.1的Widget新用法
Jun 19 #PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 #PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 #PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 #PHP
You might like
php xml文件操作实现代码(二)
2009/03/20 PHP
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
Python中文编码那些事
2014/06/25 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
python文字转语音实现过程解析
2019/11/12 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
keras topN显示,自编写代码案例
2020/07/03 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
印尼旅游网站:via
2017/11/12 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
致垒球运动员加油稿
2014/02/16 职场文书
捐书活动总结
2014/05/04 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android