Laravel入坑指南——数据库(Mysql)
Posted 咚..咚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel入坑指南——数据库(Mysql)相关的知识,希望对你有一定的参考价值。
来来来,新的一节出炉了。这一节大家一起了解,Laravel如何对mysql进行CURD。
我们回顾一下,php操作Mysql无非就是通过五个要素:host(地址)、username(用户名)、password(密码)、database(数据库名)和charset(字符集),就可以连接并操作数据库了。所以,Laravel也逃不出这个套路,我们需要了解的也就只有配置文件和CURD的方法。
1、配置文件
Laravel关于数据库的配置文件是放在/config/database.php中,在这个文件中有一个mysql配置节,如下所示:
大家会发现,在这里就有刚刚提到的连接数据库五个要素。同时,大家也会发现,这五个要素,都是env()函数的返回值。那env()从哪里读出这些值呢?这又要提到第一讲里面的.env文件。在项目根目录下有个/.env,里面有一堆配置,env()函数就是从这个文件中读取相应的值返回,如果读不到,才返回第二个参数。相关的配置如下:
2、操作前的准备
现在假设test数据库中,有一张名为course的表,结构如下:
其中uid为主链
3、查:返回数组,每个元素都是stdClass
1) 普通查询
use Illuminate\\Support\\Facades\\DB; $course=DB::select("SELECT * FROM course"); foreach ($course as $val) { echo $val->uid,$val->cname,$val->teacher,\'<br />\'; }
2) 参数绑定
$course=DB::select("SELECT * FROM course WHERE uid=? AND cname=?",[1,\'php\']); foreach ($course as $val) { echo $val->uid,$val->cname,$val->teacher,\'<br />\'; }
3) 命名参数绑定
$course=DB::select("SELECT * FROM course WHERE uid=:uid AND cname=:cname",["uid"=>1,"cname"=>\'php\']); foreach ($course as $val) { echo $val->uid,$val->cname,$val->teacher,\'<br />\'; }
建议:参数传递时,用(命名)参数绑定的方式,有利于防止sql注入攻击
4、删查改:
//添加成功返回true,插入失败抛出异常(比如主键冲突) $rtl=DB::insert(\'INSERT INTO course (uid,cname,num,teacher) values (?, ?, ?,?)\', [1,\'python\', 5, \'ckb\']); //返回删除的行数 $rtl=DB::delete("DELETE FROM course WHERE uid>=2"); //返回被更新的行数,失败抛出异常(比如主键主冲) $rtl=DB::update("UPDATE course SET teacher=\'abc\' WHERE uid=3");
建议:这三个操作,在参数传递时,也可以用(命名)参数绑定,并用也建议使用(命名)参数绑定
5、无需返回值执行sql语句
DB::statement("DROP TABLE course");
实际上,上述所有CURD的语句,都可以用statement执行。这个函数,执行成功返回true,执行失败抛出异常
6、事务
1) 函数形态
DB::transaction(function () { //这里进行CURD //如果想要回滚,可直接抛出异常 });
2) 手动声明
try { DB::beginTransaction(); //进行CURD //如果想要回滚,抛出异常 DB::rollBack(); } catch(Exception $e) { DB::rollBack(); //接住异常,在这里回滚 }
到这里,Laravel的CURD介绍完了,我们可以很好地对数据库进行操作了。关于Laravel的数据库话题,还有查询构造器和Eloquent模型,在之后的话题中会进行叙述,感兴趣的同学可以先查看官网文档。
大家下期见:)
--------------------------- 我是可爱的分割线 ----------------------------
最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同学点击链接,联系我吧。
以上是关于Laravel入坑指南——数据库(Mysql)的主要内容,如果未能解决你的问题,请参考以下文章