PDA

Visualizza la versione completa : Nome campi variabili in mysql-bash


peppepegasus
25-06-2009, 11:01
ciao,

ho riscontrato questo problema: devo inserire in una query dei dati e i nomi dei campi sono contenuti in una variabile, la mia query è:

inserito1=`mysql --user=${utente} -p${pwdd} ${databs} -Bse "INSERT INTO sodar_windprofile ( id, data, ora, altitude '${stringa1}' ) VALUES( id,'${data1}', '${ora1}', '${colonna1}' '${stringa2}' )"`;

la stringa1 contiene i nomi dei campi che vanno inseriti nel database, e stringa2 i relativi valori, purtroppo mi da errore di sintassi perchè i nomi dei campi di stringa1 se li ritrova tra singolo apice (') cosa che non piace a mysql ma necessari per passargli la variabile. Sto sviluppando in bash di debian. Qualcuno sa come ovviare a questo problema?
grazie.
ciao.

PinguinoGoloso
25-06-2009, 11:22
Hai provato creando prima la stringa con la sola query, accodandola poi al comando in inserito1 ?

Oppure una cosa del genere:
mysql --user=${utente} -p${pwdd} ${databs} -Bse << EOC
INSERT INTO sodar_windprofile ( id, data, ora, altitude, ${stringa1})
VALUES( id,${data1}, ${ora1}, ${colonna1}, ${stringa2} );
EOC

peppepegasus
25-06-2009, 11:38
ciao,

non ho capito la prima soluzione che mi chiedevi se l'avevo provata..ho provato invece quella da te suggeritami, ma mi da un errore:


mysql: option '-e' requires an argument

cosa significa, la sintassi che ho usato è questa:


inserito1=`mysql --user=${utente} -p${pwdd} ${databs} -Bse << EOC INSERT INTO sodar_windprofile ( id, data, ora, altitude, ${stringa1}) VALUES( id, ${data1}, ${ora1}, ${colonna1}, ${stringa2} ); EOC`

di che tipo di errore si tratta?
grazie.

PinguinoGoloso
25-06-2009, 12:20
Quello che ho scritto è un comando da far eseguire direttamente nello script, non da mettere in una variabile.

Loading