-
Problema database
Buongiorno. Devo scaricare alcuni dati in automatico da un link esterno su database altervista. Da un primo link (con dati di circa 5 mega) funziona. Dal secondo (dati per un totale di circa 60 mega) mi da questo errore:
- Errore 500;
oppure
- Memory Exahsted o qualcosa del genere...
Il codice che utilizzo è il seguente
Codice PHP:
<?php
$db = @mysql_connect('localhost', 'spaziometeo', '**');
@mysql_select_db('my_spaziometeo');
if (($handle = fopen("http://www.link_esterno.it", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, "|")) !== FALSE) {
$valori=array();
$num = count($data);
for ($c=0; $c < $num; $c++) {
$valori[]="'".mysql_real_escape_string($data[$c])."'";
}
mysql_query("insert into meteos values(".implode(",",$valori).")");
}
fclose($handle);
} else echo "Problema di connessione al csv";
?>
Come ho detto, con il primo link (con dati da 5 mega) funziona alla perfezione. Credo sia un problema di memory_limit o simile... Come posso risolvere? Grazie in anticipo per l'aiuto.
-
1 : il tuo database ha a disposizione tutto questo spazio ?
2 : il sito da qui sta scaricando ha una protezione verso gli hotlink ?
3 : potresti provare a salvare il file , controllare se il file esiste e se la sua dimensione e quella del file originale , poi caricarlo sul database cosi da capire dove è il tuo problema sezionando il codice ..
-
Ciao. Grazie della risposta. In realtà sono a posto tutti e tre i punti.
-------
Conosci un modo per spezzettare il file?
-
Prova a leggere qui:
http://forum.it.altervista.org/cms-f...imit-128m.html
anche se per altra esigenza, sempre un problema di allocazione di memoria è, quindi dovrebbe fungere. Visto che tu stesso sospettavi riguardasse il memory_limit, hai già provato ad aumentarlo a 128M? (di default dovremmo stare a 90M, strano che non basti per il file che dici essere sui 60)