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 Mysql类 可以参考学习熟悉下
Jun 21 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
destoon数据库表说明汇总
Jul 15 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
php支付宝接口用法分析
Jan 04 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php数据访问之增删改查操作
May 09 PHP
php常用的工具开发整理
Sep 26 PHP
Laravel 读取 config 下的数据方法
Oct 13 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连接Oracle数据库
2006/10/09 PHP
Email+URL的判断和自动转换函数
2006/10/09 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
心扬JS分页函数代码
2010/09/10 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
Python字典简介以及用法详解
2016/11/15 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
通过python3实现投票功能代码实例
2019/09/26 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
教师岗位职责
2013/11/17 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS