Hallo Leute,
ich muss eine csv in eine Tabelle importieren. Beim Import muss ich überprüfen, ob in einer anderen Tabelle das gleiche enthalten ist. Wenn das so ist, wird die Zeile aus dem CSV importiert, ansonsten wird die zeile verworfen. Allerdings ist der Import auch nach 20 Minuten Scriptlaufzeit nicht zu Ende, was sehr unbefriedigend ist. Es handelt sich um rund 300000 Datensätze. Kann mir jemand helfen das zu optimieren? Vielen lieben Dank!
ich muss eine csv in eine Tabelle importieren. Beim Import muss ich überprüfen, ob in einer anderen Tabelle das gleiche enthalten ist. Wenn das so ist, wird die Zeile aus dem CSV importiert, ansonsten wird die zeile verworfen. Allerdings ist der Import auch nach 20 Minuten Scriptlaufzeit nicht zu Ende, was sehr unbefriedigend ist. Es handelt sich um rund 300000 Datensätze. Kann mir jemand helfen das zu optimieren? Vielen lieben Dank!
PHP-Code:
$handle = fopen ($pathToFile,"r"); // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) { // Daten werden aus der Datei
// in ein Array $data gelesen
$arrNew=array();
$row++;
$n=0;
foreach($data as $key) {
$arrNew['field'.$n] = $data[$n];
$n++;
}
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*',
'tt_products','tx_mrpumpconfig_ispump=0 AND hidden=0 AND deleted=0
AND title="'.$arrNew['field0'].'"','','');
while($test = mysql_fetch_assoc($res)){
$query = $GLOBALS['TYPO3_DB']->INSERTquery('tt_tempprice', $arrNew);
$res_update = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $query);
$countDB++;
}
}
fclose ($handle);
Kommentar