Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
程序员文章站
2022-10-15 09:08:52
本文实例讲述了laravel5.1 框架数据库操作db运行原生sql的方法。分享给大家供大家参考,具体如下:
laravel操作数据库有三种:db原生sql、构建器、model。这三...
本文实例讲述了laravel5.1 框架数据库操作db运行原生sql的方法。分享给大家供大家参考,具体如下:
laravel操作数据库有三种:db原生sql、构建器、model。这三种依情况而决定使用哪种更合适。
那么今儿咱就从db原生sql说起:
1 用db门面原生sql语句操作
用db门面操作的话呢 无非就是:insert、select、update、delete 另外附加一个statement(通用语句 比如drop之类的)。
1.1 insert
public function getinsert() { db::insert('insert into articles (title, body)value(?, ?)', ['learn laravel', 'balablalabalabla']); }
insert方法接受两个参数 第一个参数呢 就是原生的sql语句,第二个参数是一个数组 对应的sql语句中的?
1.2 select
public function getarticles(){ $articles = db::select('select * from articles where title=:title', ['title' => 'learn laravel']); foreach ($articles as $article){ echo "<p>$article->id</p>"; echo "<p>$article->title</p>"; echo "<p>$article->body</p>"; } }
我们的占位符不仅仅是? 也可以用":name" 来表示,对应的数组就是一对儿一对儿的键值。
1.3 update
public function getupdate() { $affected = db::update('update articles set title=:title,body=:body where id=:id',['title' => 'laravel database', 'body' => 'balabala', 'id' => 1]); echo $affected; }
update方法还返回了一个affected 这是受到影响的总行数。
1.4 delete
public function getdelete() { $affected = db::delete('delete from articles where id=:id', ['id' => 2]); echo $affected; }
1.5 statement
public function getdrop() { db::statement('drop table articles'); }
2 监听查询
我们可以用 listen方法 监听每一次操作数据库动作,这样我们就可以用于 记录日志啊 调试啊什么的:
class appserviceprovider extends serviceprovider { /** * bootstrap any application services. * * @return void */ public function boot() { db::listen(function($sql, $bindings, $time){ // $sql = 查询语句 // $bindings = 绑定的键和值 数组类型 // 所用的时间 }); } /** * register any application services. * * @return void */ public function register() { // } }
上一篇: 孕妇能喝咖啡吗,千万别把孩子喝病了
下一篇: python 定时修改数据库的示例代码