当前位置:Gxlcms > 数据库问题 > Laravel入坑指南(4)——数据库(Mysql)

Laravel入坑指南(4)——数据库(Mysql)

时间:2021-07-01 10:21:17 帮助过:22人阅读

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入坑指南(4)——数据库(Mysql)

标签:直接   let   on()   statement   config   --   nbsp   pass   介绍   

人气教程排行