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 8 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 8 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 8 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 8 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 8 anni fa
larchitetto
X 0 X

che errore ricevi quando provi a lanciare "source"?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

semplicemente un errore di sintassi...

risposto 8 anni fa
larchitetto
X 0 X

allora non accetta il comando  :'(

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

risposto 8 anni fa
Gianni Tomasicchio
modificato 8 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 8 anni fa
larchitetto
X 0 X

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

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

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

thx

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