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 29 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
Apr 03 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 PHP
PHP汉字转换拼音的函数代码
Dec 30 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
PHP容器类的两种实现方式示例
Jul 24 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
Symfony控制层深入详解
2016/03/17 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python正则表达式完全指南
2017/05/25 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
python logging日志模块原理及操作解析
2019/10/12 Python
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
留学自荐信
2013/10/10 职场文书
教师个人鉴定材料
2014/02/08 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Java SSM配置文件案例详解
2021/08/30 Java/Android
Android studio 简单计算器的编写
2022/05/20 Java/Android