[MySQL] procedura di store con parametri?

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[MySQL] procedura di store con parametri?

Messaggioda DoctorStrange » venerdì 18 gennaio 2019, 11:34

Buongiorno a tutti,

Devo scrivere alcuni dati su un'istanza mysql che gira in locale sul mio pc.

Ho composto uno script in bash, che si occupi in automatico di scrivere alcuni di questi dati su mysql, ma una parte dello script non funziona.

La parte incriminata è questa:

Codice: Seleziona tutto
mysql --user NomeUtente --host localhost --password='password' --database Investimenti<<EOF
INSERT INTO Fca(Data,ValoreAttuale) VALUES("2019-01-17",${FCA_ValoreAttuale});
EOF


In particolare, non funziona il ${FCA_ValoreAttuale}. Molto probabilmente sbaglio la sintassi, ne ho provate numerose. Ho circondato la variabile con apici singoli, doppi, caratteri di quoting forte ( ` ) ma sembra che io non riesca in alcun modo a passare all'interno della sentenza SQL una variabile bash calcolata in precedenza.

Suggerimenti?

Grazie mille
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1589
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: [MySQL] procedura di store con parametri?

Messaggioda Gerry Ghetto » venerdì 18 gennaio 2019, 14:14

Non uso MySQL e non posso fornire una soluzione, ma qualche pensiero:

Il tuo INSERT non è sicuro => SQL Injection
Dovresti usare Prepared Statements.

Poi Bash molto probabilmente non è il tool migliore per fare questo (encodings etc.). Ti consiglio di usare un linguaggio di programmazione che ha un connector per MySQL. Poi è più facile a validare l'input, che poi viene usato con un prepared statement.

Non so, chi ha accesso al account, ma se usi la bash, puoi trovare la password del database nel file .bash_history del utente.

Se devi usare la Bash, prova qualcosa come
Codice: Seleziona tutto
echo "$SQL" | mysql $PARAMS
Gerry Ghetto
 

Re: [MySQL] procedura di store con parametri?

Messaggioda DoctorStrange » venerdì 18 gennaio 2019, 23:30

Ti ringrazio per il suggerimento.
Il DB è su un mio host locale e nin é accessibile a nessuno.
Al komento non sono interessato ai prepared statement ne a cambiare linguaggio di programmazione, anche se só che potrebbe venire piú semplice.
Il DB verrà impiegato solo per dei calcoli su alcuni miei prodotti finanziari.
Ho scoperto che uno dei motivi per cui non funziona è anche che lo script ha a che fare con numeri decimali, e bash non li tratta.
Infatti mi genera un errore di "troncamento".
Ora vedrò dininventzrmi qualcosa.
Grazie
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1589
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: [MySQL] procedura di store con parametri?

Messaggioda rai » sabato 19 gennaio 2019, 6:08

lo script ha a che fare con numeri decimali, e bash non li tratta.

guardati il man di bc, a meno che tu debba stare in pure bash
rai
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 2276
Iscrizione: maggio 2008
Località: Palermo
Distribuzione: 16.04


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 5 ospiti