1. 添加一条数据
1.1 常规用法 insert()
控制器:
<?php// 使用Db类的 insert 方法向数据库提交数据,添加一条数据public function add1(){$logs = ['IP' => '127.0.0.1','USER' => 'W18001643','TIME' => '2020-05-11 09:52:48','OPERATION' => 'SELECT','LOGS' => '测试11'];$res = Db::name('logs')->insert($logs);return $res === 1 ? '添加一笔数据成功' : '添加一笔数据失败';}
postman 测试结果:
1.2 不希望抛出异常
控制器需要这样写:不存在的字段就会被直接舍弃
<?php$data = ['foo' => 'bar', 'bar' => 'foo'];Db::name('user')->strict(false)->insert($data);
1.3 replace 写入
前提的要求是:mysql 数据库
<?php如果是mysql数据库,支持replace写入,例如:$data = ['foo' => 'bar', 'bar' => 'foo'];Db::name('user')->insert($data, true);
我先添加一个 唯一主键作为测试条件
控制器:设置成非严格字段对齐,如果失败 res = 0 , 如果找到了这个字段 res = 2 ,如果不存在 res = 1
<?php// 使用 replacepublic function add2(){$record = ['PRODUCT1' => 'Star'];$res = Db::name('wh_product')->strict(false)->insert($record, true);return $res > 0 ? '添加一笔数据成功' : '添加一笔数据失败';}
postman 测试结果:
1.4 返回新增数据的ID
可以这么写:
<?php$userId = Db::name('user')->insertGetId($data);
2. 添加多条数据
2.1 常规用法 insertAll()
控制器:
<?php// 添加多笔数据 insertAllpublic function add3(){$data = [['BUILDNAME' => 'Test 1'],['BUILDNAME' => 'Test 2'],['BUILDNAME' => 'Test 3']];return Db::name('wh_build')->insertAll($data);}
postman 测试:
注意:
- 使用 strict(false) 在这里无效,添加多条数据中必须需要保证 字段正确
2.2 limit 限定
如果批量插入的数据比较多,可以指定分批插入,使用limit方法指定每次插入的数量限制。
<?php$data = [['foo' => 'bar', 'bar' => 'foo'],['foo' => 'bar1', 'bar' => 'foo1'],['foo' => 'bar2', 'bar' => 'foo2']...];// 分批写入 每次最多100条数据Db::name('user')->data($data)->limit(100)->insertAll();
