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 array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
php计算十二星座的函数代码
Aug 21 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
php判断目录存在的简单方法
Sep 26 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
php模拟post提交数据的方法
2015/02/12 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
Python中if __name__ == "__main__"详细解释
2014/10/21 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
Python3中列表list合并的四种方法
2019/04/19 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
介绍一下#error预处理
2015/09/25 面试题
详细的大学生创业计划书模板
2014/01/27 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
中小企业员工手册范本
2015/05/14 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
高中数学教学反思范文
2016/02/18 职场文书