我有一个插入批量数据的脚本。这些数据大部分是前一个插入的复制,但至少有一个值是不同的。因此,我准备声明并将这些参数绑定执行并重复。PHP MySQL通过BATCH批量插入预准备语句
但是,我试图将它写入准备插入1000行顶部的批处理插入。不幸的是,我无法让它工作。我现在使用的代码只是一次插入整个数据。然而,这并不是想要的,因为数据量可能比测试的数量大得多。
我现在用的(批量插入一次全部)代码:
$Data = array(
array("1", "2", "3", "4"),
array("1", "2", "3", "5"),
array("1", "2", "3", "6"),
array("1", "2", "3", "7"),
array("1", "2", "3", "8"),
//ETC
);
//AS YOU CAN SEE, ONLY COL4 CHANGES
$sql = $mysqli->prepare("INSERT INTO `Table` (Col1, Col2, Col3, Col4) VALUES ".implode(', ', array_fill(0, count($Data), "(?, ?, ?, ?)")));
foreach ($Data as $InsertData) {
$sql->bind_param('iiii', $InsertData[0], $InsertData[1], $InsertData[2], $InsertData[3]);
}
$sql->execute();
我想实现的是,该数据将像上面一份声明中可以插入,但有极限1000 (或任何其他编号)每批。我无法得到这个工作。我试图使用array_splice
和其他方法,但我无法使它工作。
可能重复的[MySQLi:插入多行与一个预准备语句](http://stackoverflow.com/questions/14860606/mysqli-inserting-multiple-rows-with-one-prepared-statement) – Ziinloader