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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
随机广告显示(PHP函数)
Oct 09 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
php数组指针函数功能及用法示例
Feb 11 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封装的数据库保存session功能类
2016/07/11 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
JavaScript必看小技巧(必看)
2016/06/07 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
详解JavaScript 的变量
2019/03/08 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
Python中内置的日志模块logging用法详解
2016/07/12 Python
python实现图片九宫格分割
2021/03/07 Python
三个python爬虫项目实例代码
2019/12/28 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
职高毕业生自我鉴定
2013/10/21 职场文书
太太口服液广告词
2014/03/20 职场文书
惊天动地观后感
2015/06/10 职场文书
机器人瓦力观后感
2015/06/12 职场文书
赢在执行观后感
2015/06/16 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
2016年寒假家长评语
2015/10/10 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
Go 语言结构实例分析
2021/07/04 Golang
日元符号 ¥
2022/02/17 杂记