mysql - thinkphp3.2 CSV-Batch-Import von Zehntausenden von Daten meldet einen Timeout-Fehler. Gibt es eine gute Möglichkeit, damit umzugehen?
大家讲道理
大家讲道理 2017-05-25 15:08:12
0
1
701
$filename = $_FILES['data']['tmp_name']; 
$handle = fopen($filename, 'r'); 
$result = input_csv($handle); //解析csv 
$length = count($result); 

for ($i = 0; $i < $length; $i++) {
    $ip = $result[$i][0]; 
    $port = $result[$i][1];
    //...
    $data = array(
        "ip" => $ip,
        "port" => $port,
        //...
    );
    $count = $Property->where($where)->find();
    if($count){
        $query = $Property->where($where)->save($data);
    }else{
        $query = $Property->add($data);
    }
}
fclose($result); 
$this->success('导入成功!');
exit();

Laden Sie die CSV-Datei hoch, aber nach der Ausführung wird ein Fehler gemeldet.
ps: Es muss festgestellt werden, dass die IP + der Port eindeutig ist. Wenn sie nicht vorhanden ist, wird sie überschrieben , es wird hinzugefügt.

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(1)
仅有的幸福

两种,一种是设置超时时间限制,还有一种就是把它转化成sql最后拿到数据库执行,我推荐第二种,这种性能好

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage