将包含CSV的MYSQL变量插入表中

时间:2017-04-09 13:26:28

标签: php mysql

我有一个包含CSV的变量,我希望以有效的方式将其插入到表中,因为这是一个将每天执行多次的操作。

CSV_To_Be_Inserted = "Y101, E103, I710, U809"  (this list will be closer to 100 values each time)

我只想插入表中尚未存在的值。我在PHP中尝试使用一个循环,为每个调用一个insert语句,大约需要17秒。

我也尝试将整个CSV变量传递给MYSQL并循环遍历MYSQL中的值,花了15秒。

有关如何在4或5秒内完成此任务的任何想法?

1 个答案:

答案 0 :(得分:0)

您必须使用组插入来提高mysql查询的性能!

<?php

    $CSV_To_Be_Inserted = '....';

    $csv = explode("\n",$CSV_To_Be_Inserted); //Split every Line
    $values = [];
    foreach($csv as $record){
        $rec = "'".str_replace(", ","', '",$record)."'"; //add ' on columns
        $values[]=' ('.$rec.' )';
    }
    $mysql->query("INSERT INTO TABLE VALUES ".implode(',',$values).";");