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 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
php设计模式之命令模式的应用详解
May 21 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
php银联网页支付实现方法
Mar 04 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
PHP实现批量修改文件名的方法示例
Sep 18 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
js的.innerHTML = ""IE9下显示有错误的解决方法
2013/09/16 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
JavaScript字符串对象
2017/01/14 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
python简单文本处理的方法
2015/07/10 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python保留小数位的三种实现方法
2020/01/07 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
草船借箭教学反思
2014/02/03 职场文书
公务员保密承诺书
2014/03/27 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
班级管理经验交流材料
2015/11/02 职场文书