データベースにインポートする必要があるデータの行を持つ大きなテキストファイルがあります。しかし、このファイルには300000行のようなものが含まれており、クエリが大きすぎると思われるため、動作させることができません。PDO大きな挿入ステートメント
$all_inserts = array();
$count = 0;
foreach($file as $line) {
if($count > 0) {
$modelnummer = trim(substr($line, 0, 4));
$datum = trim(substr($line, 4, 8));
$acc_nummer = trim(substr($line, 12, 4));
$acc_volgnr = trim(substr($line, 16, 1));
$prijs = trim(substr($line, 17,5));
$mutatiecode = trim(substr($line, 22,1));
$all_inserts[] = array($modelnummer, $datum, $acc_nummer, $acc_volgnr, $prijs, $this->quote($mutatiecode));
}
$count++;
}
$query = 'INSERT INTO accessoire_model_brommer (modelnummer, datum, acc_nummer, acc_volgnr, prijs, mutatiecode) VALUES ';
$rows = array();
foreach($all_inserts as $one_insert) {
$rows[] = '(' . implode(',', $one_insert) . ')';
}
$query .= ' ' . implode(',', $rows);
$db->query($query);
私は小さなファイルのコードの上に使用し、それが正常にかつ高速に動作します。しかし、それは大きなファイルでは機能しません。誰かがこのファイルを読み込んで挿入するより良い方法を知っていますか?
また、トランザクション内で行ごとに挿入文を使用しようとしましたが、どちらも機能しません。
クエリがあまりにも大きく見えるので、動作しません._十分に具体的ではありません。なぜそれは機能しませんか?何が起こるのですか?エラーが出ますか?いくつかの要素が挿入されますか? – OptimusCrime