laravel mysql map_Laravel入坑指南(4)——数据库(Mysql)

来来来,新的一节出炉了。这一节大家一起了解,Laravel如何对Mysql进行CURD。

我们回顾一下,PHP操作Mysql无非就是通过五个要素:host(地址)、username(用户名)、password(密码)、database(数据库名)和charset(字符集),就可以连接并操作数据库了。所以,Laravel也逃不出这个套路,我们需要了解的也就只有配置文件和CURD的方法。

1、配置文件

Laravel关于数据库的配置文件是放在/config/database.php中,在这个文件中有一个mysql配置节,如下所示:

50f8367533b9ec1eb8298fb2fa38786c.png

大家会发现,在这里就有刚刚提到的连接数据库五个要素。同时,大家也会发现,这五个要素,都是env()函数的返回值。那env()从哪里读出这些值呢?这又要提到第一讲里面的.env文件。在项目根目录下有个/.env,里面有一堆配置,env()函数就是从这个文件中读取相应的值返回,如果读不到,才返回第二个参数。相关的配置如下:

8e4ed5b118fdc1bdd2eda87875c2ee04.png

2、操作前的准备

现在假设test数据库中,有一张名为course的表,结构如下:

f817efa134a319c3c521189e997b71c4.png

其中uid为主链

3、查:返回数组,每个元素都是stdClass

1) 普通查询

useIlluminate\Support\Facades\DB;$course=DB::select("SELECT * FROM course");foreach ($course as $val)

{echo $val->uid,$val->cname,$val->teacher,'
';

}

2) 参数绑定

$course=DB::select("SELECT * FROM course WHERE uid=? AND cname=?",[1,'php']);foreach ($course as $val)

{echo $val->uid,$val->cname,$val->teacher,'
';

}

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,'
';

}

建议:参数传递时,用(命名)参数绑定的方式,有利于防止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模型,在之后的话题中会进行叙述,感兴趣的同学可以先查看官网文档。

大家下期见:)

---------------------------  我是可爱的分割线  ----------------------------

最后博主借地宣传一下,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值