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脚本的10个技巧(5)
Oct 09 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
codeigniter发送邮件并打印调试信息的方法
Mar 21 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP中overload与override的区别
Feb 13 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
jquery 上下滚动广告
2009/06/17 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
python组合无重复三位数的实例
2018/11/13 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
super()与this()的区别
2016/01/17 面试题
介绍一下Linux中的链接
2016/05/28 面试题
医学生求职自荐信
2013/10/25 职场文书
党员培训思想汇报
2014/01/07 职场文书
超市理货员岗位职责
2014/07/04 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
村官2015年度工作总结
2015/10/14 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
python实现腾讯滑块验证码识别
2021/04/27 Python
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技