zfxcms ^回到顶部

您的当前位置:首页 > php资讯 > Laravel框架 > laravel整理-6数据库操作

laravel整理-6数据库操作

所属分类: Laravel框架   2019-06-25 09:16:38  编辑:admin  浏览次数 631 次

数据库配置
对于配置文件内容介绍
driver'       => 数据库类型’,
           'host'        => 地址
           'port'        => 端口
           'database'    => 数据库名
           'username'   => 用户名
           'password'   => 密码
'prefix'      => 表前缀
在这里定义的配置信息是针对于整个项目而来的

Config/databases.php

image.png

image.png

Env获取 跟目录下的.env中的配置信息

多个数据库链接
当项目中需要使用多个数据库链接的时候,可以在配置文件中再定义你所需要的连接 tupian1

            连接方式需要使用connection这个函数定义连接 $users = DB::connection('config')->select('select * from t');

image.png

原生sql语句
原生sql操作方法 insert,update,delete,select
DB::select('select * from users where id = :id', ['id' => 1]);
写操作返回印象的数据条数
DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
DB::update('update users set votes = 100 where name = ?', ['John']);
DB::delete('delete from users');
事务:
事务的处理主要是使用transaction这个方法
DB::transaction(function(){
DB::update('update users set votes = 100 where name = ?', ['John']);
})
也可手动使用事务
DB::beginTransaction();
DB::rollBack();
DB::commit();
Sql监听

对于sql的执行进行监听 使用场景:调试的时候,方便与跟踪问题

       DB::listen(function ($query) {

            echo $query->sql; 

            // $query->bindings

            // $query->time        });

 使用在AppServiceProvider中的boot方法中注入 

image.png

查询构造器
SELECT 读操作 

Where方法的使用 写法
  		$rseult = DB::table('user')->where('uid', 63)->get();
        $rseult = DB::table('user')->where('uid', '=', 63)->get();
        $rseult = DB::table('user')->where([
            ['uid'    , '=', 63],
            ['role_id', '=', 1]
        ])->get();
        $rseult = DB::table('user')->where([
            'uid'     => 63,
            'role_id' => 1
        ])->get();
        return dd($rseult);

分块操作
如果你需要处理上千条数据库记录,你可以考虑使用 chunk 方法。该方法一次获取结果集的一小块,
并将其传递给 闭包 函数进行处理。该方法在 Artisan 命令 编写数千条处理数据的时候非常有用。
  		DB::table('city')->orderBy('city_id')->chunk(100, function ($citys) {
            foreach ($citys as $city) {
                echo $city->city_id.'  name : '.$city->city_name.'
';
            }
        });
		Select这个和tp5的使用方式有所区别
Tp5中的select代表的是一个查询方式 与laravel中的get方法一样的意义
而laravel中的select则是 表示获取数据库表中获取所有列(需要的字段)与tp5的filed方法一样。
addSelect加入一个字段
$rseult = DB::table('user')->where('uid', 63)->select('role_id')->first();
$rseult = DB::table('user')->where('uid', 63)->select('role_id', 'uid as user_id')
->addSelect('user_name')->first();
return dd($rseult);
详细请查看https://learnku.com/docs/laravel/5.7/queries/2289
image.png

PHP文章检索

PHP文章目录