我有以下代码正常, 但我需要一种批量处理它的方法 将它们全部插入。
for($i=0; $i<sizeof($my_array); $i++)
{
$sql = "INSERT INTO exclude_resource (id,resource_id,config_id)
VALUES(DEFAULT, '$my_array[$i]' ,'$insert_id')";
$command = $connection->createCommand($sql);
$result = $command->execute();
}
答案 0 :(得分:0)
您的查询应该类似于(请参阅mysql docs):
INSERT INTO table (field1, field2, field3)
VALUES
(value1a, value2a, value3a),
(value1b, value2b, value3b),
(value1c, value2b, value3c),
...
所以将值放在数组中,用逗号连接它们,然后执行生成的查询。以PHP结合:
$values = array();
for($i=0; $i<sizeof($my_array); $i++) {
$values[] = "(DEFAULT, '$my_array[$i]' ,'$insert_id')";
}
$sql =
"INSERT INTO exclude_resource (id,resource_id,config_id) VALUES '.
join(',', $values);
$command = $connection->createCommand($sql);
$result = $command->execute();
$insert_id
需要有一个值,但与您的代码段相同。
如果要插入的行数超过5k或10k,则应在其间运行INSERT并重置数组。