source e file *.sql

ave :)

dunque, ho un piccolo problemino relativo alla lettura e all'esecuzione dei file *.sql via php.  :buck:

via shell di mysql uso l'istruzione:

mysql> SOURCE <path_assoluta>\<nome_file>.sql

fin qui tutto ok.

il mio prob è che non ho ben capito come funziona questo comando source. nel momento in cui ho inserito i file *.sql nella stessa dir del server dove risiedevano gli script che ne eseguivano il comando, mysql mi ha reso un errore di sintassi (1064) su tutta la linea.   :-\

sinceramente mi sarei aspettato un errore del tipo "non trovo il file"...

domanda: come faccio ad eseguire le query contenute dentro i file *.sql? visto che su shell uso source, vorrei poter usare qualcosa di simile via php; non vorrei finire con la pazzia di dovermi aprire i file *.sql, analizzarli e costruirci le query per poi lanciarle :o (e poi scoprire, dopo tutto sto lavoro, che una soluzione migliore c'è)!

altra domanda: come indico una path relativa con source?

NB: il mio test non si trova sulla radice del server http, bensì annidato dentro 2 cartelle...

grazie  :'(

inviato 10 anni fa
larchitetto
X 0 X

source è un comando interno alla shell di mysql, quindi non è accessibile da PHP che al massimo può lanciare dei comandi o dei precessi presenti sul server in cui gira.

Per eseguire un file .sql via PHP io uso phpMyAdmin e non mi è mai capitato di dover scrivere uno script ad hoc per fare queste cose.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

azz...

a me serve di implementare via php da me (non usando phpmyadmin).

indi se source è interno, e non esiste altra via T_T mi sa creerò uno script che mi legga il file *.sql e che ne ricostruisca le query in memoria da lanciare.

alla fine del lavoro lo potrò postare per eventuali commenti o riutilizzo?

altra domanda: "USE <db_nome>" è un comando interno?

grazie

risposto 10 anni fa
larchitetto
X 0 X

normalmente per selezionare il database su cui operare si usa la funzione mysql_select_db().

Comunque potresti fare un tentativo a lanciare con mysql_query sia "USE ...." sia "SOURCE ..."

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

beh si conoscevo la mysql_select_db()... giusto per provare nuove soluzioni ^^

cmq provato via php sia source che use. source non va, use si!

:D

risposto 10 anni fa
larchitetto
X 0 X

che errore ricevi quando provi a lanciare "source"?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

semplicemente un errore di sintassi...

risposto 10 anni fa
larchitetto
X 0 X

allora non accetta il comando  :'(

comunque potresti richiamare da PHP mysqldump, attraverso un normale comando shell

risposto 10 anni fa
Gianni Tomasicchio
modificato 10 anni fa
X 0 X

allora non accetta il comando  :'(

comunque potresti richiamare da PHP mysqldump, attraverso un normale comando shell

mmm forse non ho ben capito io, ma che intendi per "un normale comando shell"??

risposto 10 anni fa
larchitetto
X 0 X

PHP può lanciare comandi ed eseguibili esterni con le funzioni exec, system e passthru

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ah sisi avevo na volta fatto na cosa con exec... approfondirò :P

thx

risposto 10 anni fa
larchitetto
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda