ThinkPHP3.1新特性之查询条件预处理简介
预处理 查询 简介 特性 条件 ThinkPHP3.1
2023-06-13 09:15:28 时间
以往的ThinkPHP3.0版本对数组方式的查询条件会进行安全过滤(这是由于3.0强制使用了字段类型检测,所以数组方式的查询条件会强制转换为字段的设定类型),但是3.0版本并不支持字符串条件的安全过滤。而ThinkPHP3.1版本则增加了对条件字符串进行预处理的支持,让ORM的安全性更加得以保证。
一、使用where方法
Model类的where方法支持字符串条件预处理,使用方式: $Model->where("id=%dandusername="%s"and xx="%f"",array($id,$username,$xx))->select();
或者直接使用:
$Model->where("id=%dandusername="%s"andxx="%f"",$id,$username,$xx)->select();
如果$id变量来自用户提交或者URL地址的话,如果传入的是非数字类型,则会强制格式化为数字格式后进行查询操作。
字符串预处理格式类型支持指定数字、字符串等,具体可以参考vsprintf方法的参数说明。
二、使用query和execute方法
除了where条件外,对原生SQL查询方式也支持预处理机制,例如:
$Model->query("SELECT*FROMthink_userWHEREid=%dandusername="%s"andxx="%f"",array($id,$username,$xx));
模型的execute方法也和query方法一样支持预处理机制。
相关文章
- Python Pandas PK esProc SPL,谁才是数据预处理王者?
- 冷知识:预处理字符串操作符
- 【说站】python数据预处理的三种情况
- 数据导入与预处理-拓展-pandas时间数据处理02
- 数据导入与预处理-拓展-pandas可视化
- LegoLoam(1)imu输入预处理
- 预处理指令用法详解(C语言)
- A.机器学习入门算法(三):K近邻(k-nearest neighbors),鸢尾花KNN分类,马绞痛数据--kNN数据预处理+kNN分类pipeline
- 【C 语言】编译过程 分析 ( 预处理 | 编译 | 汇编 | 链接 | 宏定义 | 条件编译 | 编译器指示字 )
- 程序员内功心法之程序环境和预处理
- 抽丝剥茧C语言(高阶)程序环境和预处理
- 【商务智能】数据预处理
- 你在数据预处理上花费的时间,是否比机器学习还要多?
- C#预处理指令之#line,#pragmawarning详细解析
- 常用C/C++预处理指令详解
- PDO预处理语句PDOStatement对象使用总结