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 file_get_contents函数轻松采集html数据
Apr 22 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
PHP通用检测函数集合
Feb 08 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
PHP 实现判断用户是否手机访问
Jan 21 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 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输出指定时间以前时间格式的方法
2015/03/21 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
精彩的推荐信范文
2013/11/26 职场文书
采购意向书范本
2014/03/31 职场文书
教师一岗双责责任书
2014/04/16 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
详解Vue router路由
2021/11/20 Vue.js
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python