美文网首页
Thinkphp6.0 数据库的数据查询

Thinkphp6.0 数据库的数据查询

作者: angelwgh | 来源:发表于2023-07-07 15:34 被阅读0次

    一、 单条数据查询

      DB:table('oc_user')->where('id', 27)->find();
       // sql语句: SELECT * FROM `oc_user` WHERE `id` = 27 LIMIT 1
       // findOrFail方法,当这条数据不存在时,抛出一个error
      DB:table('oc_user')->where('id', 127)->findOrFail();
     
      // findOrEmpty方法,当这条数据不存在时,返回一个空数组[]
      DB:table('oc_user')->where('id', 127)->findOrEmpty();
    
    
    1. DB:table()中的table必须制定完整数据表(包括前缀)
    2. where用来指定条件
    3. DB::getLastSql(); 获取最后一条SQL语句

    二、 数据集查询

       DB:table('oc_user')->select();
       // SELECT * FROM `oc_user`
        // 转化为数组
       DB:table('oc_user')->select()->toArray();
       //用name方法省略前缀
       DB::name('user')->select();
    
    1. 查不到数据时 ,用selectOrFail方法抛出异常
    2. 使用select()方法后再调用toArray()方法可以将数据集对象转化为数组
    3. 当在数据库配置文件中配设置了前缀,可以使用name方法忽略前缀

    二、 其他查询

    1. 通过 value方法,可以查询指定字段的值(单个),没有数据返回null
    Db::table('oc_user')->where('id',1)->value('username');
    
    1. 通过colunm()方法,可以查询指定列的值(多个),没有数据返回空数组
    Db::table('oc_user')->column('username')
    
    // 可以指定`id`作为列值的索引
    Db::table('oc_user')->column('username', 'id')
    
    
    1. 数据量过大时,使用chunk()方法分批处理数据
          //每次处理3条数据
          Db::name('user')->chunk(3, function ($users) {
                dump($users);
            });
    
    1. 游标查询,每次查询只读取一条,在读取时,自动定位到下一行继续读取
        $cursor = Db::name('user')->cursor();
        foreach($cursor as $user){
            dump($user);
        }
    

    相关文章

      网友评论

          本文标题:Thinkphp6.0 数据库的数据查询

          本文链接:https://www.haomeiwen.com/subject/xkxdudtx.html