数字化技能提升教程,数字化时代生存宝典

数字化百科 / 词条 / ThinkPHP查询语言之SQL查询

ThinkPHP查询语言之SQL查询

查看全部词条命名空间:Main

导航:上一页

ThinkPHP内置的ORM和ActiveRecord模式实现了方便的数据存取操作,而且新版增加的连贯操作功能更是让这个数据操作更加清晰,但是ThinkPHP仍然保留了原生的SQL查询和执行操作支持,为了满足复杂查询的需要和一些特殊的数据操作,SQL查询的返回值因为是直接返回的Db类的查询结果,没有做任何的处理。而且可以支持查询缓存。主要包括下面两个方法:

  • query方法

query方法是用于sql查询操作,和select一样返回数据集,例如:

PHP代码


$Model = new Model() // 实例化一个model对象 没有对应任何数据表

$Model->query("select * from think_user where status=1");

  • execute方法

用于更新和写入数据的sql操作,返回影响的记录数,例如:

PHP代码


$Model = new Model() // 实例化一个model对象 没有对应任何数据表

$Model->execute("update think_user set name='thinkPHP' where status=1");

关于原生SQL操作的一点补充

通常使用原生SQL需要手动加上当前要查询的表名,如果你的表名以后会变化的话,那么就需要修改每个原生SQL查询的sql语句了,针对这个情况,TP还提供了一个小的技巧来帮助解决这个问题。例如:

PHP代码

$model = M("User");

$model->query('select * from where status>1');

我们这里使用了 这样一个字符串,系统在解析的时候会自动替换成当前模型对应的表名,这样就可以做到即使模型对应的表名有所变化,仍然不用修改原生的sql语句。

category:ThinkPHP