2012-05-28 7 views
6

Ruby newbie qui. Sto cercando di inserire questa stringa "Scandalo di Lady Arabella ..." Sto usando ruby-pg per fare questo. Tuttavia ho degli errori a causa della citazione singola, come posso disinfettare questa stringa e rimuovere tutti i tag html? C'è una funzione integrata per questo?ruby-pg disinfetta i dati prima di inserire

risposta

20

È possibile utilizzare escape_string per sfuggire correttamente i singoli apici:

db = PG.connect(...) 
db.exec("insert into t (...) values ('#{db.escape_string(str)}', ...)") 

o utilizzare prepare e exec_prepared a lavorare con una dichiarazione preparata, invece:

db.prepare('ins', 'insert into t (...) values ($1, ...)') 
db.exec_prepared('ins', [str, ...]) 
+0

Grazie. Ho google e sono arrivato qui. Usando 'connection.escape_string'. – huy

+0

@huy Headsup, 'connection.escape_string' non sfuggirà alla barra rovesciata alla fine del campo. –

+2

@IslamAzab 'escape_string' chiama semplicemente' PQescapeStringConn' dalla libreria C di PostgreSQL, quindi se non sfugge a una barra rovesciata, non è necessario. O mi sta sfuggendo qualcosa? –

Problemi correlati