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生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
PHP+ajax分页实例简析
Dec 07 PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
PHP反射实际应用示例
Apr 03 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
php批量删除数据
2007/01/18 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
Django数据库操作的实例(增删改查)
2017/09/04 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
int在python中的含义以及用法
2019/06/27 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
法人委托书
2014/07/31 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
施工安全保证书
2015/05/09 职场文书