Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
本文实例讲述了Laravel5.1框架数据库操作DB运行原生SQL的方法。分享给大家供大家参考,具体如下:
Laravel操作数据库有三种:DB原生SQL、构建器、Model。这三种依情况而决定使用哪种更合适。
那么今儿咱就从DB原生SQL说起:
1用DB门面原生SQL语句操作
用DB门面操作的话呢无非就是:insert、select、update、delete另外附加一个statement(通用语句比如drop之类的)。
1.1insert
publicfunctiongetInsert() { DB::insert('INSERTINTOarticles(title,body)VALUE(?,?)',['learnlaravel','balablalabalabla']); }
insert方法接受两个参数第一个参数呢就是原生的SQL语句,第二个参数是一个数组对应的sql语句中的?
1.2select
publicfunctiongetArticles(){ $articles=DB::select('SELECT*FROMarticlesWHEREtitle=:title',['title'=>'learnlaravel']); foreach($articlesas$article){ echo"$article->id
"; echo"$article->title
"; echo"$article->body
"; } }
我们的占位符不仅仅是?也可以用":name"来表示,对应的数组就是一对儿一对儿的键值。
1.3update
publicfunctiongetUpdate() { $affected=DB::update('UPDATEarticlesSETtitle=:title,body=:bodyWHEREid=:id',['title'=>'laraveldatabase','body'=>'balabala','id'=>1]); echo$affected; }
update方法还返回了一个affected这是受到影响的总行数。
1.4delete
publicfunctiongetDelete() { $affected=DB::delete('DELETEFROMarticlesWHEREid=:id',['id'=>2]); echo$affected; }
1.5statement
publicfunctiongetDrop() { DB::statement('DROPTABLEarticles'); }
2监听查询
我们可以用listen方法监听每一次操作数据库动作,这样我们就可以用于记录日志啊调试啊什么的:
classAppServiceProviderextendsServiceProvider { /** *Bootstrapanyapplicationservices. * *@returnvoid */ publicfunctionboot() { DB::listen(function($sql,$bindings,$time){ //$sql=查询语句 //$bindings=绑定的键和值数组类型 //所用的时间 }); } /** *Registeranyapplicationservices. * *@returnvoid */ publicfunctionregister() { // } }
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。