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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
