- 批量写入数据.insertAll
- 函数原型
- 用法如下:
- 绑定参数
- 使用 bind 绑定参数
- replace 支持
批量写入数据.insertAll
函数原型
插入成功后,返回 lastInsertId 。
public function insertAll($data, $arrBind = [], $booReplace = false, $bFlag = false);
用法如下:
# INSERT INTO `test` (`test`.`name`,`test`.`value`) VALUES (:name,:value),(:name_1,:value_1),(:name_2,:value_2),(:name_3,:value_3)
/*
Array
(
[name] => Array
(
[0] => 小鸭子1
[1] => 2
)
[value] => Array
(
[0] => 呱呱呱1
[1] => 2
)
[name_1] => Array
(
[0] => 小鸭子2
[1] => 2
)
[value_1] => Array
(
[0] => 呱呱呱2
[1] => 2
)
[name_2] => Array
(
[0] => 小鸭子3
[1] => 2
)
[value_2] => Array
(
[0] => 呱呱呱3
[1] => 2
)
[name_3] => Array
(
[0] => 小鸭子4
[1] => 2
)
[value_3] => Array
(
[0] => 呱呱呱4
[1] => 2
)
)
*/
$data = [
['name' => '小鸭子1', 'value' => '呱呱呱1'],
['name' => '小鸭子2', 'value' => '呱呱呱2'],
['name' => '小鸭子3', 'value' => '呱呱呱3'],
['name' => '小鸭子4', 'value' => '呱呱呱4'],
];
Db::table('test')->
insertAll($data);
绑定参数
# INSERT INTO `test` (`test`.`name`,`test`.`value`) VALUES (:name,:value),(:name_1,:questionmark_0_1),(:name_2,:value_2),(:name_3,:questionmark_1_3)
/*
Array
(
[name] => Array
(
[0] => 小鸭子1
[1] => 2
)
[value] => Array
(
[0] => 呱呱呱1
[1] => 2
)
[name_1] => Array
(
[0] => 小鸭子2
[1] => 2
)
[questionmark_0_1] => Array
(
[0] => 吃肉1
[1] => 2
)
[name_2] => Array
(
[0] => 小鸭子3
[1] => 2
)
[value_2] => Array
(
[0] => 呱呱呱3
[1] => 2
)
[name_3] => Array
(
[0] => 小鸭子4
[1] => 2
)
[questionmark_1_3] => Array
(
[0] => 吃肉2
[1] => 2
)
)
*/
$data = [
['name' => '小鸭子1', 'value' => '呱呱呱1'],
['name' => '小鸭子2', 'value' => '[?]'],
['name' => '小鸭子3', 'value' => '呱呱呱3'],
['name' => '小鸭子4', 'value' => '[?]'],
];
Db::table('test')->
insertAll($data, ['吃肉1', '吃肉2']);
# INSERT INTO `test` (`test`.`name`,`test`.`value`) VALUES (:name,:value),(:name_1,:hello),(:name_2,:value_2),(:name_3,:world)
/*
Array
(
[name] => Array
(
[0] => 小鸭子1
[1] => 2
)
[value] => Array
(
[0] => 呱呱呱1
[1] => 2
)
[name_1] => Array
(
[0] => 小鸭子2
[1] => 2
)
[name_2] => Array
(
[0] => 小鸭子3
[1] => 2
)
[value_2] => Array
(
[0] => 呱呱呱3
[1] => 2
)
[name_3] => Array
(
[0] => 小鸭子4
[1] => 2
)
[hello] => hello 吃肉
[world] => world 喝汤
)
*/
$data = [
['name' => '小鸭子1', 'value' => '呱呱呱1'],
['name' => '小鸭子2', 'value' => '[:hello]'],
['name' => '小鸭子3', 'value' => '呱呱呱3'],
['name' => '小鸭子4', 'value' => '[:world]'],
];
Db::table('test')->
insertAll($data, ['hello' => 'hello 吃肉', 'world' => 'world 喝汤']);
使用 bind 绑定参数
# INSERT INTO `test` (`test`.`name`,`test`.`value`) VALUES (:name,:value),(:name_1,:questionmark_0_1),(:name_2,:value_2),(:name_3,:questionmark_1_3)
/*
Array
(
[name] => Array
(
[0] => 小鸭子1
[1] => 2
)
[value] => Array
(
[0] => 呱呱呱1
[1] => 2
)
[name_1] => Array
(
[0] => 小鸭子2
[1] => 2
)
[questionmark_0_1] => Array
(
[0] => 吃鱼
[1] => 2
)
[name_2] => Array
(
[0] => 小鸭子3
[1] => 2
)
[value_2] => Array
(
[0] => 呱呱呱3
[1] => 2
)
[name_3] => Array
(
[0] => 小鸭子4
[1] => 2
)
[questionmark_1_3] => Array
(
[0] => 吃肉
[1] => 2
)
)
*/
$data = [
['name' => '小鸭子1', 'value' => '呱呱呱1'],
['name' => '小鸭子2', 'value' => '[?]'],
['name' => '小鸭子3', 'value' => '呱呱呱3'],
['name' => '小鸭子4', 'value' => '[?]'],
];
Db::table('test')->
bind(['吃鱼', '吃肉'])->
insertAll($data);
replace 支持
# REPLACE INTO `test` (`test`.`name`,`test`.`value`) VALUES (:name,:value),(:name_1,:questionmark_0_1),(:name_2,:value_2),(:name_3,:questionmark_1_3)
/*
Array
(
[name] => Array
(
[0] => 小鸭子1
[1] => 2
)
[value] => Array
(
[0] => 呱呱呱1
[1] => 2
)
[name_1] => Array
(
[0] => 小鸭子2
[1] => 2
)
[questionmark_0_1] => Array
(
[0] => 吃鱼
[1] => 2
)
[name_2] => Array
(
[0] => 小鸭子3
[1] => 2
)
[value_2] => Array
(
[0] => 呱呱呱3
[1] => 2
)
[name_3] => Array
(
[0] => 小鸭子4
[1] => 2
)
[questionmark_1_3] => Array
(
[0] => 吃肉
[1] => 2
)
)
*/
$data = [
['name' => '小鸭子1', 'value' => '呱呱呱1'],
['name' => '小鸭子2', 'value' => '[?]'],
['name' => '小鸭子3', 'value' => '呱呱呱3'],
['name' => '小鸭子4', 'value' => '[?]'],
];
Db::table('test')->
bind(['吃鱼', '吃肉'])->
insertAll($data, [], true);