Kom ihåg mig?
Home Menu

Menu


uppdatera databas med php och javascript

 
Ämnesverktyg Visningsalternativ
Gammal 2012-10-11, 00:40 #7
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Uppenbarligen så är XML filen stor, du sparar både den och dess objekt i minnet.

Så beroende på hur servern är konfigurerad (memory_limit) så kommer detta att resultera i fel. Likaså timeout på scriptet.

Jag skulle råda dig i att stycka upp filen. Kan vara allt från att du lagrar informationen i omgångar till att köra xx antal rader åt gången.

Testa till exempel att skriva ut data emellanåt samt att se till att variabler återanvänds/NULL:as när dom inte längre används.



Har du tex det så här:
PHP-kod:
$xml simplexml_load_file(...); // 50MB stor fil
$rows $data $xml
Så förbrukar du 150MB. Nu är det lite extremt men vill få fram en poäng.


Titta även på att köra MySQL frågorna med multiple inserts istället en fråga per iteration. Tex.
PHP-kod:
$insert 'INSERT INTO table (field1, field2, field3, ...) VALUES ';
$sql '';
$x 0;
while(...) {
   
$x++;
   ...

   
$sql .= ', (id, value, name, ...)';

   if(
$x == 150) {
      
$query $insert substr($sql1); // Substr tar bort första komma-tecknet.
      
mysql_query($query);
      
$query $sql ''// Nollställ variablar
      
$x 0;
   }
}
// Viktig - lägg in de sista posterna
$query $insert substr($sql1); // Substr tar bort första komma-tecknet.
mysql_query($query); 
Jonas är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:07.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017