thinkPHP框架中执⾏原⽣SQL语句的⽅法
本⽂实例讲述了thinkPHP框架中执⾏原⽣SQL语句的⽅法。分享给⼤家供⼤家参考,具体如下:
怎样在thinkphp⾥⾯执⾏原⽣的sql语句?
$Model = new Model();//或者 $Model = D(); 或者 $Model = M();
$sql = "select * from `order`";
$voList = $Model->query($sql);
只是需要new⼀个空的模型继承Model中的⽅法。
注意query是查功能,execute是增删改功能
查询和读取属性值的实例:
$sql = "select * from goods";
$Model = M();
$result = $Model->query($sql);
foreach ($result as $k=>$val){
$goods_id = $val["goods_id"];
}
tP的模型可以⽀持原⽣SQL操作,提供了query和execute两个⽅法,为什么原⽣SQL还要区分两个⽅法呢,原因有两个:1、返回类型不同
query⽤于查询,返回的是数据集,和select或者findall⼀样,所以可以直接在模板⾥⾯使⽤volist标签输出query的查询结果execute⽤于写操作,返回的是状态或者影响的记录数
2、读写统计需要
为了便于统计当前的数据读写次数,把数据库的读和写操作分开(对应的就是query和execute)
使⽤原⽣SQL很简单,我们甚⾄不需要实例化任何的模型,例如:
$Model = new Model(); // 实例化⼀个空模型
下⾯的⽅法是等效的
$Model = D();// 或者 $Model = M();
// 下⾯执⾏原⽣SQL操作
sql自学难吗$Model->query('select * from think_user where status=1');
$Model->execute('update think_user set status=1 where id=1');
如果你实例化了某个模型,仍然可以执⾏原⽣SQL操作,不受影响,例如:
$User = D('User');
$User->query('select * from think_user where status=1');
$User->execute('update think_user set status=1 where id=1');
在这种情况下⾯,我们可以简化SQL语句的写法,例如:
$User->query('select * from __TABLE__ where status=1');
$User->execute('update __TABLE__ set status=1 where id=1');
系统会⾃动把__TABLE__替换成当前模型对应的数据表名称,实际的数据表由模型决定。
通常来说,我们都是使⽤原⽣SQL操作实现⼀些ORM和CURD⽐较难实现的操作,另外,如果SQL不复杂的话原⽣SQL的效率和连贯操作的效率差别是微乎其微的,TP本⾝的ORM实现也是相当⾼效的。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》。
希望本⽂所述对⼤家基于ThinkPHP框架的PHP程序设计有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。