Laravel 学习--数据库使用初识 1

1.数据库配置

  • (1)修改建议用env,动态使用config
    Oracle数据库连接配https://blog.csdn.net/q393364227/article/details/78458690
  • (2) 自定义配置
    对于配置文件内容介绍:
    driver'       => 数据库类型',
    'host'        => 地址
    'port'        => 端口
    'database'    => 数据库名
    'username'   => 用户名
    'password'   => 密码
    'prefix'      => 表前缀

    2. 原生数据库操作

  • 1 使用默认链接与指定链接
    数据库默认连接操作:$ result = DB::select(‘select from table’);
    如果连接方式需要使用connection这个函数定义的连接,则
    $users = DB::connection('config')->select('select
    from t');
  • 2 原生的curd
    • select
      按顺序的传递值方式
      $result = DB::connection('test')->select('select from table where id = ?',[3]);
      按键值传递值方式
      DB::select('select
      from users where id = :id', ['id' => 1]);
      注意: 预处理操作函数都具备2个参数位置(sql语句 、占位符值)
      占位符:
      1、? 按顺序传递值
      2、:Name 按名称传递值。传参都是数组形式
    • insert
      传值方式与select一样
      DB::connection('test')->select('insert into table ('count' , 'name') value(?,?),['3','8888888888']');
    • update 、delete同上
      DB::update('update users set votes = 100 where name = ?', ['John']);
      DB::delete('delete from users');
  • 3 事务(使用事务必须把表的数据引擎设置为innodb,在设计表->选项里面设置)
    (1)自动
    主要是使用transaction这个方法
    DB::transaction(function (){
    //修改
    $num = DB::update("update goods set goods_name = 'Macos' where id = :id",['id'=>1]);
    //删除
    $num1 = DB::delete('delete from goods where id = 7');
    var_dump($num,$num1);
    try{
    if ($num > 0 && $num1 > 0) {
    return '事务操作成功';
    }else {
    throw new \Exception('事务操作失败');
    }
    }catch (Exception $e){
    return $e->getMessage();
    }
    });
    注意:务会自动提交。回滚触发条件是抛出异常
    (2)手动事务
    DB::beginTransaction();
    //修改
    $num = DB::update("update goods set goods_name = 'Macos' where id = :id",['id'=>1]);
    //删除
    $num1 = DB::delete('delete from goods where id = 7');
    if ($num > 0 && $num1 > 0) {
    echo '事务操作成功';
    //事务提交
    DB::commit();
    }else {
    //事务回滚
    echo '事务操作失败';
    DB::rollBack();
    }
  • 4 开启sql监听
    通过db中的listen方法。需要添加AppServiceProvider.php(位置app\Providers)中的boot方法
    public function boot()
    {
    //sql的监听
    DB::listen(function ($query){
    //查看sql语句
    // echo $query->sql;
    //查看错误码
    // var_dump($query->bindings);
    //执行时间
    echo $query->time;
    });
    }
    Laravel调试错误插件:https://blog.csdn.net/qq_38365479/article/...
本作品采用《CC 协议》,转载必须注明作者和本文链接
Luson
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!