thinkphp 添加数据

添加一条数据
Db 类的 insert 方法 添加数据 成功返回添加成功的条数,通常情况返回 1
$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::name('user')->insert($data);
用data方法配合insert使用
$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::name('user')->data($data)->insert();
如果数据表没有foo或者bar字段,会抛出异常,若不希望抛出异常,使用strict(false) 抛弃不存在的字段
Db::name('user')->strict(false)->insert($data);
mysql数据库支持replace写入
Db::name('user')->insert($data, true);
insertGetId返回主键值
insertGetId方法新增数据并
$userId = Db::name('user')->insertGetId($data);


添加多条数据
Db 类的 insertAll 方法传入要添加的数据,添加数据成功返回添加成功的条数
$data = [
    ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);
mysql数据库支持replace写入
Db::name('user')->insertAll($data, true);
使用data方法
Db::name('user')->data($data)->insertAll();
确保要批量添加的数据字段是一致的
如果批量插入的数据比较多,可以指定分批插入,limit方法指定每次插入的数量
$data = [
    ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
    ...
];
// 分批写入 每次最多100条数据
Db::name('user')->data($data)->limit(100)->insertAll();