我有一個插入批量數據的腳本。這些數據大部分是前一個插入的複製,但至少有一個值是不同的。因此,我準備聲明並將這些參數綁定執行並重復。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