Salve lista; scusate lo schifo di oggetto, ma oggi la fantasia e
carente.
Il problema di oggi è: cercare e manipolare dati in un database con la
presenza di apici, cioè devo cercare e fare cose con un campo del
database che mi presenta anche cose del genere: “SOCIETA’ QUA E LA’ BLA
BLA ECC. ECC.”
Quando faccio una query di ricerca via active record tipo questa:
query = Rels.find(:first, :include => [:tab1, :tab2, :tab3], :conditions
=> “tab1.data1 = ‘#{var1}’ and tab2.data2 = ‘#{var2}’ and tab3.data3 =
‘#{var3}’”)
dove var1, var2 e var3 sono variabili contenenti i dati con gli apici
(precedentemente selezionati) e Rels come facilmente si può capire è una
tabella usata per mettere in relazione le altre 3.
Il problema è che quando mysql si trova davanti l’apice del testo di
var1 (per esempio) lo interpreta come chiusura della dichiarazione del
dato da ricercare in tab1.data1, con il risultato di andare in errore.
Ho risolto in questo modo piuttosto barbaro:
query = Rels.find(:first, :include => [:tab1, :tab2, :tab3], :conditions
=> “tab1.data1 = “#{var1}” and tab2.data2 = “#{var2}” and tab3.data3
= “#{var3}””)
cioè sostituendo gli apici con " .
Ho provato anche ad invertire gli apici con le virgolette (o doppi apici
a dir si voglia) che a volte risolve la situazione, ma questa volta non
ha funzionato.
C’è una soluzione più decente?
Voi come fareste/avete fatto?
Come sempre grazie in anticipo