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冒泡排序算法代码详细解读
Jul 17 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
php中filter_input函数用法分析
Nov 15 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php三种实现多线程类似的方法
Oct 30 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
PHP Echo字符串的连接格式
Mar 07 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
php微信公众号开发之简答题
Oct 20 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
Aug 14 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实现定时执行任务的方法
2014/10/05 PHP
PHP中文编码小技巧
2014/12/25 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
JS原型链怎么理解
2016/06/27 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
python目录与文件名操作例子
2016/08/28 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
python中的时区问题
2021/01/14 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
财务人员个人求职信范文
2013/12/04 职场文书
接待员岗位责任制
2014/02/10 职场文书
经销商订货会主持词
2014/03/27 职场文书
军训口号
2014/06/13 职场文书
万里长城导游词
2015/01/30 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
导游词之南京中山陵
2019/11/27 职场文书