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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
如何在PHP中使用Oracle数据库(3)
Oct 09 PHP
一个可以找出源代码中所有中文的工具
Oct 25 PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 PHP
分享PHP header函数使用教程
Sep 05 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php提交post数组参数实例分析
Dec 17 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
七种PHP开发环境搭建工具
Jun 28 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
Python交换变量
2008/09/06 Python
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
企业理念标语
2014/06/09 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
导游词之江南周庄
2019/12/06 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
Spring整合Mybatis的全过程
2021/06/28 Java/Android
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记