2016-02-22 29 views
-1

我有以下代码工作正常, 但我需要一种批量处理它的方法和 一次插入它。批量插入

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

多查询帮助你。 : - http://php.net/manual/en/mysqli.multi-query.php –

+2

提高你的问题的标题,它可能会吸引downvoters。 – Sandeep

回答

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和重置阵列。