laravel db类

2.1、laravel支持的数据库类型

MySQL

Pgsql

SQLite

SQL Server

laravel操作数据库所使用的扩展 pdo,一定要开启pdo扩展

2.2、配置连接数据库信息

在laravel中修改连接数据库的文件有两处

  • 修改 .env文件
  • 修改config/database.php文件。

laravel5.4之后对我们的数据库的编码就进行了默认改变,默认使用 utf8mb4

创建数据库

修改.env文件来连接数据库

到此我们的数据库的配置就完成了

注:表前缀,如果有则添加,没有可以不修改。

检查是否配置好

2.3、DB类执行原生SQL语句 

// 添加操作
$ret = DB::insert('insert into test_member (name,age,email) values (:name,:age,:email)', [':name'=>'张三',':age'=>20,':email'=>'admin@admin.com']);

// 修改操作
$ret = DB::update('update test_member set age=:age where id=:id', [':age' => 12, ':id' => 1]);

// 查询 select 
# 查询单条
$ret = DB::selectOne("select * from web64_user where id=:id",[':id'=>$id]);
# 查询多条
$ret = DB::select("select * from web64_user");

// 删除操作
$ret = DB::delete("delete from test_member where id=:id",[':id'=>1]);


——————————————————————————————————————————————————————————————————————————————————————
    public function db(){
        // 添加
        /*$sql = 'insert into la_users (username,password) values(:username,:password)';
        # 返回true/false
        // $ret = DB::insert($sql,[':username'=>'admin',':password'=>'admin888']);
        $ret = DB::insert($sql,['username'=>'admin1','password'=>'admin8881']);*/

        // 修改
        /*$sql = "update la_users set username=:username where id=:id";
        # 返回影响行数
        $ret =DB::update($sql,['username'=>'张三','id'=>1]);
        dd($ret);*/

        // 查询单条
        /*$sql = "select * from la_users where id=:id";
        # 返回一个集合对象
        $ret = DB::selectOne($sql,['id'=>1]);
        dump($ret);*/

        // 查询多条
        /*$sql = "select * from la_users";
        # 返回一个数组的集合
        $ret = DB::select($sql);
        dump($ret);*/

        // 删除
        $sql = "delete from la_users where id=:id";
        # 返回影响行数
        $ret = DB::delete($sql,['id'=>1]);
        dd($ret);
    }

定义路由

创建控制器

php artisan make:controller MydbController

数据表

控制器

 

2.4、DB构建器操作数据库

2.4.1、查询(get/first)

table(表名),这里的表名,如查有前缀不用写。

# 查询多条 get all
# all不可以接where条件

// 查询所有无条件
$data = DB::table('user')->get(); // 默认 [‘*’]
// 查询所有,并指定字段 推荐使第一种方式
$data = DB::table('user')->get(['name','age']);
// 获取ID大于5的数据
$ret = DB::table('member')->where('id','>=',5)->get();

// when 来进行条件的搜索
$kw = $request->get('kw','user');
// when                        字段  如果为真则执行匿名函数中的操作
$ret = DB::table('users')->when($kw,function (Builder $query) use ($kw){
$query->where('username','like',"%{$kw}%");
})->get();

# 查询单条记录
$ret = DB::table('member')->where('id', 5)->first();

# 获取某个具体的值
$ret = DB::table('member')->where('id',5)->value('name');

# 获取一列数据
$ret = DB::table('member')->pluck('name');
# 以ID为下标 name为值
$ret = DB::table('member')->pluck('name', 'id');

# 排序操作
$ret = DB::table('member')->orderBy('id','desc')->get();

# 查询总记录数
echo DB::table('member')->count();

# 分页获取数据
$ret = DB::table('member')->orderBy('id','desc')->offset(0)->limit(2)->get();
limit:表示限制输出的条数
offset:从什么地方开始,起始从0开始

$ret = DB::table('users')->whereIn('id',[2,3,5])->get();
$ret = DB::table('users')->whereBetween('id',[3,5])->get();


__________________________________________________________________

    // db构建器
    public function db2(Request $request){
        # 查询所有
        // $ret = DB::table('users')->get();

        # 获取所有 只要一个字段
        // $ret = DB::table('users')->get(['username']);

        # 查询id大于等于3的记录
        // $ret = DB::table('users')->where('id','>=','3')->get();

        # id 大于等于 3 或者username=admin1
        // $ret = DB::table('users')->where('id','>=',3)->orWhere('username','admin1')->get();

        # 根据用户名查找
        // $kw = $request->get('kw','adm');
        // when                              字段 如果为真 就执行匿名函数
        /*$ret = DB::table('users')->when($kw,function(Builder $query) use ($kw){
            $query->where('username','like',"%{$kw}%");
        })->get();*/

        /*$ret = DB::table('users')->where(function (Builder $query) use ($kw){
            $query->where('username','like',"%{$kw}%");
        })->get();*/

        #id为3
        // $ret = DB::table('users')->where('id',3)->first();

        # 获取id为的用户名
        // $ret = DB::table('users')->where('id',3)->value('username');

        # 获取用户名这一列的数据
        // $ret = DB::table('users')->pluck('username','id');

        # 获取总数
        #$ret = DB::table('users')->where('id','>',2)->count();

        # 排序
        // $ret = DB::table('users')->orderBy('id','desc')->get();
        #分页
        // $ret = DB::table('users')->orderBy('id','desc')->offset(0)->limit(2)->get();

        // $ret = DB::table('users')->whereIn('id',[2,3,4])->get();
        // $ret = DB::table('users')->whereBetween('id',[2,4])->get();

        // 添加数据
        $table = DB::table('users');

        /*$ret = $table->insert([
            'username'=>'admin12',
            'password'=>'fusk'
        ]);*/

        // 添加多条
        /*$data = [];
        for ($i=6;$i<10;$i++):
        $data[] = [
          'username'=>'user'.$i,
          'password'=>'user'.$i,
        ];
        endfor;
        $ret = $table->insert($data);*/

        // 添加单条并返回插入时候的id
        /*$ret = $table->insertGetId([
            'username'=>'user10',
            'password'=>'user10'
        ]);*/

        // 修改
        /*$ret = $table->where('id',10)->update([
            'username'=>'user111',
            'password'=>'user111'
        ]);*/

        // 删除
        $ret = $table->delete(10);
        dump($ret);
    }

定义路由

控制器

2.4.2、添加数据操作(insert/ insertGetId)

对数据库中的某个表增加数据主要有两个方法可以实现,分别是insert()insertGetId()

insert()        可以同时添加一条或多条,返回值是布尔类型。
insertGetId()  只能添加一条数据,返回自增的id。

// 添加数据
$ret = DB::table('member')->insert([
'name' => '张三丰',
'age' => 50,
'email' => 'ee@ee.com'
]);
// 添加数据并得到插入时的ID值
$id = DB::table('member')->insertGetId([
'name' => '小华',
'age' => 60,
'email' => 'ff@ff.com'
]);

// 添加多条记录
$ret = DB::table('member')->insert([
['name'=>'AAAA','age'=>20,'email'=>'111@111.com'],
['name'=>'BBBB','age'=>30,'email'=>'222@222.com'],
]);

2.4.3、修改数据(update)

$ret = DB::table('member')->where('id', 2)->update([
'name' => '修改一下',
'age'  => 50
]);

2.4.4、删除数据(delete)

// 删除数据

$ret = DB::table('member')->where('id',2)->delete();

 

展开阅读全文

Git 实用技巧

11-24
这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。
©️2020 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值