Ruby + mysql

Sono nella melma con MySql
Voglio inserire un valore in un campo di una maschera video e voglio
cercare se questo valore esiste in una data colonna di una tabella
qualsiasi: quindi

“SELECT * FROM tabella WHERE variabile = colonna_tabella”

come faccio a dire a MySql che mi deve cercare il contenuto di
“variabile” e non la stringa “variabile” nella colonna specificata?

Lo stesso problema si pone per il comando insert: tutti gli esempi che
ho trovato riportano:

INSERT INTO tabella VALUES (‘valore1’,‘valore2’, …)

se valore1 e’ una variabile con un valore qualsiasi come devo fare per:
dire a MySql che “valore1” e’ una variabile;
di inserire nel campo del database il contenuto di "valore1 e non la
stringa “valore1” con Ruby?

Grazie e saluti

Don’t you tired of not getting answers…?

2007/9/21 Guerra A. [email protected]

Sono nella melma con MySql
Voglio inserire un valore in un campo di una maschera video e voglio
cercare se questo valore esiste in una data colonna di una tabella
qualsiasi: quindi

“SELECT * FROM tabella WHERE variabile = colonna_tabella”

come faccio a dire a MySql che mi deve cercare il contenuto di
“variabile” e non la stringa “variabile” nella colonna specificata?

Ciao Antonio,

immagino che tu stia passando la stringa SQL di cui sopra direttamente
al
driver.

Se così fosse, ti basta costruire la stringa in questo modo:

sql = “SELECT * FROM #{tabella} WHERE #{colonna} = #{valore}”

Dove tabella, colonna e valore sono variabili del tuo programma (il cui
nome
è arbitrario). Ruby sostituirà i valori per queste variabili nella stringa
sql.

Se valore è una stringa, assicurati di usare ‘#{valore}’ con gli apici
nella
stringa sql.

High-Quality Programming Screencasts: http://ThinkCode.TV
Zen and the Art of Programming: http://AntonioCangiano.com
Mathematics is wonderful: http://math-blog.com
Aperiodico di resistenza informatica: http://stacktrace.it/
Author of “Ruby on Rails for Microsoft Developers”:
http://bit.ly/rorforms

2009/8/1 Antonio C. [email protected]

Se valore è una stringa, assicurati di usare ‘#{valore}’ con gli apici
nella stringa sql.

Chiarisco ulteriormente. Se il campo corrispondente nel database si
aspetta
un valore testuale (ad esempio, se è stato definito come VARCHAR) allora
ti
servono gli apici.

Ciao,
Antonio

High-Quality Programming Screencasts: http://ThinkCode.TV
Zen and the Art of Programming: http://AntonioCangiano.com
Mathematics is wonderful: http://math-blog.com
Aperiodico di resistenza informatica: http://stacktrace.it/
Author of “Ruby on Rails for Microsoft Developers”:
http://bit.ly/rorforms

On Sat, Aug 1, 2009 at 1:35 PM, Antonio C.[email protected]
wrote:

2009/8/1 Antonio C. [email protected]

Se valore è una stringa, assicurati di usare ‘#{valore}’ con gli apici
nella stringa sql.

Chiarisco ulteriormente. Se il campo corrispondente nel database si aspetta
un valore testuale (ad esempio, se è stato definito come VARCHAR) allora ti
servono gli apici.

Sì ma occhio che la stringa che vai a incollare dentro la tua query
non contenga a sua volta degli apici!!! Altrimenti rischi che la tua
query fallisca, o anche peggio (è una maniera di “sabotare” le
applicazioni: SQL injection - Wikipedia).

Ciao,

Matteo