laravel 基础使用1

107 阅读3分钟

增删改操作

    1. 使用insert()方法可以新增一条或多条记录:

//新增一条记录,一般情况下是不予许添加key相同的数据的,比方说已经存在一个id=20的记录了,那么就不能再添加一条也是id=20的记录

$users = \DB::table('users')->insert([

            'id' => '24',

            'username' => '李白',

            'password' => "123456",

            'gender' => "男",

            'email' => 'libai@163.com',

            'price' => '130.00',

            'details' => '123',

            'uid' => '1005',

            'status' => '1',

            'create_time' => '2015-02-09 16:23:56',

            'update_time' => '2020-07-23 20:22:56',

       ]); 

$users = \DB::table('users')->insert([ //批量添加多条数据

            [

                'id' => '25',

                'username' => '周永银',

                'password' => "123",

                'gender' => "女",

                'email' => 'zhouyongying@163.com',

                'price' => '520.00',

                'details' => '123',

                'uid' => '1006',

                'status' => '2',

                'create_time' => '2019-08-15 16:23:56',

                'update_time' => '2020-12-22 01:22:00',

            ],[

                'id' => '26',

                'username' => '阿尔泰尔',

                'password' => "123",

                'gender' => "女",

                'email' => 'aertaier@163.com',

                'price' => '666.00',

                'details' => '123',

                'uid' => '1007',

                'status' => '0',

                'create_time' => '2018-08-08 13:23:56',

                'update_time' => '2020-12-21 20:22:56',

            ]

       ]); 

b. 使用insertOrIgnore()来添加记录,那么就不需要担心数据重复的问题

//会忽略掉报错信息,但是也不会新增任何数据

\DB::table('users')->insertOrIgnore([

                'id' => '24',

                'username' => '李白',

                'password' => "123456",

                'gender' => "男",

                'email' => 'libai@163.com',

                'price' => '130.00',

                'details' => '123',

                'uid' => '1005',

                'status' => '1',

                'create_time' => '2015-02-09 16:23:56',

                'update_time' => '2020-07-23 20:22:56',

       ]);

c. 使用insertGetId()方法,获取新增后的自增ID:

//获取新增后返回的ID,注意:它是真的会再去新加一条数据

return \DB::table('users')->insertGetId([

            'username' => '李白',

            'password' => "123456",

            'gender' => "男",

            'email' => 'libai@163.com',

            'price' => '130.00',

            'details' => '123',

            'uid' => '1005',

            'status' => '1',

            'create_time' => '2015-02-09 16:23:56',

            'update_time' => '2020-07-23 20:22:56'

        ]);

d. 使用update()方法,可以通过条件更新一条数据内容:

//更新修改一条数据

\DB::table('users')->where('id', 24)

            ->update([

                'username' => '王维',

                'email'     => 'wangwei@163.com'

            ]);

e. 使用updateOrInsert()方法,可以先进行查找修改,如果不存在,则新增:

//参数1:修改的条件

//参数2:修改的内容(新增的内容)

\DB::table('users')->updateOrInsert(

            ['id'=>24],

            [

                'username'=>'孟浩然', 

                'password'=>'321', 'gender'=>'男', 

                'email'=>'menghaoran@163.com', 

                'price' => '230.00', 

                'details' => '123', 

                'uid' => '1005',

                'status' => '1',

                'create_time' => '2015-02-12 16:23:56',

                'update_time' => '2020-10-23 20:33:00'

            ]

       );

f. 对于json数据,新增和修改的方法和正常数据类似:

//新增时,转换为json数据

'list' => json_encode(['id'=>19])

//修改时,使用list->id指定

\DB::table('users')->where('id', 24)

            ->update([

                'list->id' => 20

       ]);

g. 更新数据时,可以使用自增increment()和自减decrement()方法:

//默认自增/自减基数为1,可在第二个值设置每次增加或减少多少数字

\DB::table('users')->where('id', 24)->increment('price', 2);

       \DB::table('users')->where('id', 24)->decrement('price', 2);

h. 使用delete()删除数据,一般来说要加上where条件,否则清空:

//删除一条数据,注意:无论哪种方法一定要传参数,否则会导致一整张表被删掉

\DB::table('users')->delete(24);//方法一

       \DB::table('users')->where(24)->delete();//方法二

//删掉整张表

\DB::table('users')->delete();

       \DB::table('users')->truncate();