Práce s velkým souborem a uložení dat do databáze
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zool
- Člen | 144
Ahoj chtěl jsem se zeptat, chtěl jsem v presenteru načíst poměrně velký soubor cca 20MB a uložit data do databáze, používám verzi 2.0.10 a nette/database. Ale pokud jsem začal šahat do databáze, tak mi program napíše, že alokuji hodně paměti. Soubor načítám asi takto
$radek = file(WWW_DIR . "/soubory/data/data.txt");
foreach($radek as $rad)
{
$data = explode("|",$this->UTF($rad));
$dataa['id'] = intval($data[1]);
$dataa['kod'] = $dataa['id'];
$data = explode("|",$this->UTF($rad));
if($this->zbozi->get($dataa['id']))
$id = $this->zbozi->update($dataa['id'], $dataa);
else
{
$dataa['datum'] = new \Nette\DateTime();
$id = $this->zbozi->insert($dataa);
}
unset($dataa);
unset($data);
}
Nevíte kde by mohl být zakopaný pes? Když to udělám mimo nette, tak to jede bez problému.
- vvoody
- Člen | 910
Skús to čítať a súčasne spracúvať riadok po riadku http://php.net/…on.fgets.php aby si nemusel držať v pamäti celý obsah súboru