2012-05-28 9 views
6

Ruby Neuling hier. Ich versuche diese Zeichenfolge einzufügen "Lady Arabella's Scandalo ..." Ich benutze ruby-pg um dies zu tun. Allerdings habe ich wegen des einfachen Zitats Fehler, wie kann ich diese Zeichenfolge bereinigen und alle HTML-Tags entfernen? Gibt es dafür eine eingebaute Funktion?ruby-pg Daten vor dem Einfügen bereinigen

Antwort

20

können Sie escape_string verwenden, um richtig die einfachen Anführungszeichen zu entkommen:

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

oder prepare verwenden und exec_prepared mit einer vorbereiteten Erklärung zur Arbeit statt:

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

Dank. Ich google und bin hier angekommen. Verwenden von 'connection.escape_string'. – huy

+0

@huy Headsup, 'connection.escape_string' wird nicht einem Backslash am Ende Ihres Feldes entkommen. –

+2

@IslamAzab 'escape_string' ruft nur' PQescapeStringConn' aus der PostgreSQL C-Bibliothek auf, wenn es also keinen Backslash hat, muss es nicht. Oder fehlt mir etwas? –