Php PDO大插入语句

Php PDO大插入语句,php,mysql,pdo,Php,Mysql,Pdo,我有一个很大的文本文件,其中包含需要导入数据库的数据行。但是这个文件包含大约300000行,我无法让它工作,因为查询看起来太大了 $all_inserts = array(); $count = 0; foreach($file as $line) { if($count > 0) { $modelnummer = trim(substr($line, 0, 4)); $datum = trim(sub

我有一个很大的文本文件,其中包含需要导入数据库的数据行。但是这个文件包含大约300000行,我无法让它工作,因为查询看起来太大了

$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);
我将上面的代码用于较小的文件,它运行良好且快速。但它不适用于更大的文件。有人知道读取和插入此文件的更好方法吗

还尝试在事务中每行使用insert语句,但也不起作用。

注意:我不知道PDO或SQL对查询长度的确切限制

如果查询看起来太大,也许您可以拼接文本文件,因此不要运行一个300k值的查询,而是运行100个3000值的查询,即


也许您可以创建一个缓冲区,用3000个值填充它,然后运行查询。清空缓冲区,用接下来的3000个值填充它,然后再次运行查询。

我无法让它工作,因为查询似乎太大了。还不够具体。为什么它不起作用?会发生什么?你有错误吗?是否插入了某些元素?谢谢。我把它一次分成5000块,现在可以用了。