2012-05-28 6 views
6

Ruby novato aquí. Estoy tratando de insertar esta cadena "Scandalo de Lady Arabella ..." Estoy usando ruby-pg para hacer esto. Sin embargo, tengo errores debido a la comilla simple, ¿cómo puedo desinfectar esta cadena y eliminar todas las etiquetas html? ¿Hay una función incorporada para esto?ruby-pg desinfectar los datos antes de insertar

Respuesta

20

Puede utilizar escape_string escapar correctamente sus comillas simples:

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

o utilizar prepare y exec_prepared trabajar con una declaración preparada en su lugar:

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

Gracias. Yo google y llegué aquí. Usando 'connection.escape_string'. – huy

+0

@huy Headsup, 'connection.escape_string' no escapará a una barra invertida al final de su campo. –

+2

@IslamAzab 'escape_string' simplemente llama a 'PQescapeStringConn' desde la biblioteca C de PostgreSQL, de modo que si no escapa una barra invertida, entonces no es necesario. ¿O me estoy perdiendo algo? –

Cuestiones relacionadas