微信扫一扫打赏支持

laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)

laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)

一、总结

一句话总结:

非常非常接近:也是分为两大类,原生SQL数据库链式操作
学习方法:使用时 多看手册即可 ,【和tp的区别不大,功能增加了很多,文档更加完善

 

1、数据最基础的链式操作?

注意这里找表是table方法:\DB::table("user")->where("id",'=',3)->first();

 

2、lavarel数据库操作中如何获取某列的值?

$titles = DB::table('roles')->pluck('title');

若你想要获取一个包含单个字段值的数组,你可以使用 pluck 方法。在这个例子中,我们将取出 roles 数据表 title 字段的数组:

$titles = DB::table('roles')->pluck('title');

foreach ($titles as $title) {
    echo $title;
}

你也可以在返回的数组中指定自定义的键值字段:

$roles = DB::table('roles')->pluck('title', 'name');

foreach ($roles as $name => $title) {
    echo $title;
}

 

3、lavarel数据库操作中如何从数据表中获取单个列或行?

value方法获取单个字段:$email = DB::table('users')->where('name', 'John')->value('email');
first方法获取单行数据:$user = DB::table('users')->where('name', 'John')->first();

若你只需从数据表中取出单行数据,则可以使用 first 方法。这个方法会返回单个 StdClass 对象:

$user = DB::table('users')->where('name', 'John')->first();

echo $user->name;

若你不想取出完整的一行,则可以使用 value 方法来从单条记录中取出单个值。这个方法会直接返回字段的值:

$email = DB::table('users')->where('name', 'John')->value('email');

 

4、lavarel数据库操作中如何 取出 id为1的一条数据?

find(1):发现ID是1的数据

 

 

5、lavarel数据库操作中如何 操作数千条数据库记录(结果分块)及实例?

使用 chunk 方法。这个方法一次只取出一小「块」结果,并会将每个区块传给一个闭包进行处理:
分块实例:比如每次处理 100 条记录:DB::table('users')->orderBy('id')->chunk(100, function($users) {

若你需要操作数千条数据库记录,则可考虑使用 chunk 方法。这个方法一次只取出一小「块」结果,并会将每个区块传给一个闭包进行处理。这个方法对于要编写处理数千条记录的 Artisan 命令 非常有用。例如,让我们将整个 users 数据表进行分块,每次处理 100 条记录:

DB::table('users')->orderBy('id')->chunk(100, function($users) {
    foreach ($users as $user) {
        //
    }
});

你可以从闭包中返回 false,以停止对后续分块的处理:

DB::table('users')->orderBy('id')->chunk(100, function($users) {
    // Process the records...

    return false;
});

 

6、lavarel数据库操作中如何 取某个字段两个之间的值?

 where+数组条件:\DB::table("user")->where([['id','>=',2],['id','<=',5]])->get();
 whereBetween:$data=\DB::table("User")->whereBetween('id',[10,15])->get();

 

 

7、lavarel数据库操作中如何 判断字段是否为空?

whereNull方法+get方法:$data=\DB::table("User")->whereNull("pass")->get();
whereNull 和 whereNotNull
    $data=\DB::table("User")->whereNull("pass")->get();
    $data=\DB::table("User")->whereNotNull("pass")->get();

 

 

8、lavarel数据库操作中如何 判断字段是否在某个数组中?

whereIn方法:$data=\DB::table("User")->whereIn("id",[2,5,12,15])->get();
whereIn 和 whereNotIn
    $data=\DB::table("User")->whereIn("id",[2,5,12,15])->get();
    $data=\DB::table("User")->whereNotIn("id",[2,5,12,15])->get();

 

 

9、lavarel数据库操作中如何 获取某个表所有数据?

get方法:$users = DB::table('users')->get();
    public function index()
    {
        $users = DB::table('users')->get();

        return view('user.index', ['users' => $users]);
    }

 

 

10、lavarel数据库操作中如何 使用mysql原生函数?

DB:raw方法:表达式会被当作字符串注入到查找:DB::table("User")->select(DB::raw("count(*) tot"))->first();

 

11、lavarel数据库操作中如何 查询特定字段?

select方法:有点相当于tp的field字段:->select('users.*', 'contacts.phone', 'orders.price')
$users = DB::table('users')
            ->join('contacts', 'users.id', '=', 'contacts.user_id')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->select('users.*', 'contacts.phone', 'orders.price')
            ->get();

 

12、lavarel数据库操作中如何 从数据库 指定偏移处截取多少个?

offset方法:表示偏移
limit方法:表示截取几个

 

 13、lavarel数据库删除操作中 where条件和update的位置关系 ?

where要放在update前面,不然可能出错
DB::table('users')
            ->where('id', 1)
            ->update(['votes' => 1]);

 

 

 

二、内容在总结中

 

 

 

 
posted @ 2019-05-12 17:00  范仁义  阅读(948)  评论(0编辑  收藏  举报