Alex1 · 11/10/2002 12:18 · #1mi trovo a dover dividere una query sql in file da 20 insert l'uno per poterli reinserire (causa problemi col phpmyadmin del server). Ho un file da 12000 insert. esiste un prog che faccia la divisione o sono costretto a farla a mano?
_theone_ · 11/10/2002 12:49 · #2Ipotizzando che il tuo file originale abbia una INSERT per riga, puoi usare questo:
[php:1:4fd40aa87e]
<?
$fin=fopen('./sqlfile.sql','r');
$rowcounter=1;
$filecounter=0;
while (!feof($fin)) {
$data=fgets($fin, 2048);
if ($rowcounter > 20) {
$rowcounter=1;
$filecounter++;
}
$fout=fopen("outfile$filecounter.sql",'a');
if (($result=fwrite($fout,$data)) == -1) {
die("Impossibile scrivere sul file outfile$filecounter.sql");
}
fclose($fout);
$rowcounter++;
}
fclose($fin);
?>
[/php:1:4fd40aa87e]
Il file originario ho supposto che si chiami "sqlfile.sql" e in uscita i files saranno numerati come outfileN.sql.
Modifica i path dei file a seconda delle tue esigenze e verifica che Apache abbia permessi di scrittura nella directory dove vuoi outputtare i files splittati.
Bye,
fank · 11/10/2002 22:46 · #4Puoi anche usare...
$array=file("filename");
che legge un intero file in un vettore, e poi...