PDA

View Full Version : [PHP] Come caricare file .sql


Mitzuashi
23-03-2004, 17:34
Ciao ragazzi,
ho un dubbio forse abbastanza stupido.
Io ho un backup del database X fatto tramite shell dos di mysql (mysqldump). Allora, finchè si tratta di eseguire il restore del db in locale, nessun problema. Il problema sorge quando, devo eseguire il restore su un sito internet.

Vorrei sapere, siccome ovviamente i manteiner, non mettono a disposizione una shell dos (almeno credo), esiste un modo per caricare stò file .sql con php, o devo fare un'interfaccia che legga il file .sql ed esegua query per query???

Se non mi sono spiegato bene scusatemi, ma a volte non mi capisco neanche io.

Ciao e grazie

cionci
23-03-2004, 17:39
Fai una query di questo tipo: SOURCE percorso/nomedelfile.sql;

Mitzuashi
24-03-2004, 06:53
Cionci sei un drago.
Stò iniziando la tua statua nella piazza sotto casa.

Grazie mille.
Quando poi avrò finito il sito, posso disturbarti per chiederti di dargli un'occhiata e magari darmi qualche suggerimento???????

cionci
24-03-2004, 07:37
Certo ;)

gabriele81
26-03-2004, 11:35
Scusate se mi intrometto ma la cosa interessa anche a me...

Ho salvato il mio database in un file chiamato db.sql con mysqldump e ho creato un file php per (cercare di) lanciarlo.
Nel php ho messo le istruzioni mysql_connect con i parametri appropriati e poi mysql_query("source 'db.sql'"); però quest'ultima va in errore.
I file php e sql sono nella stessa directory, ho provato anche a togliere gli apicetti dal nome del file ma salta comunque.
Che ho sbagliato? mysql_query deve essere per forza dopo una mysql_select_db? e se il db non c'è?

cionci
26-03-2004, 11:38
Probabilmente devi mettere il percorso completo del file...

gabriele81
31-03-2004, 18:29
Ho rifatto qualche prova ma non va...:muro:
Ho scritto questo codice:
$connessione = mysql_connect("localhost", "root", "") or die("Connessione non riuscita");

$query="SOURCE 'db.sql'";
mysql_query($query) or die ("Non funziona...".mysql_error());

mysql_close($connessione);


ma mi salta quando va a fare la query, mi dice "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SOURCE 'db.sql'' at line 1"
Il file db.sql sta nella stessa directory del file php, e l'ho copiato anche nella dir bin di mysql. Ho provato a mettere gli apicetti sia singoli che doppi, a mettere il percorso completo (C:\Programmi\ecc.), ma si blocca sempre lì.

Ho provato da console di mysql a digitare SOURCE db.sql ed ha funzionato alla prima botta...

cionci
31-03-2004, 19:30
Cacchio...mi sa che ho sbagliato parola chiave !! Ti faccio sapere...

cionci
31-03-2004, 19:38
Mi sa che SOURCE è un comando del client testuale di MySQL (infatti se provi funziona)... Non l'avevo mai usato da PHP...

Copia tutto il file in una stringa (con readfile) ed eseguilo come query... Dovrebbe andare...