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+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
帝国cms目录结构分享
Jul 06 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
php创建无限级树型菜单
Nov 05 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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
杏林同学录(七)
2006/10/09 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
PHP children()函数讲解
2019/02/03 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
python导入坐标点的具体操作
2019/05/10 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
PyQt5实现简易电子词典
2019/06/25 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
python2 对excel表格操作完整示例
2020/02/23 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
《木笛》教学反思
2014/03/01 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
廉政承诺书
2015/01/19 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
Python 数据科学 Matplotlib图库详解
2021/07/07 Python