2012-05-28 36 views
6

紅寶石新手在這裏。我試圖插入這個字符串「Lady Arabella的Scandalo ......」我使用ruby-pg來做到這一點。然而,由於單引號,我有錯誤,我如何清理這個字符串並刪除所有的html標籤?有沒有內置函數?ruby​​-pg在插入前清理數據

回答

20

您可以使用escape_string正確逃脫你的單引號:

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

或使用prepareexec_prepared用事先準備好的聲明,而不是工作:

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

感謝。我谷歌,到了這裏。使用'connection.escape_string'。 – huy

+0

@huy Headsup,'connection.escape_string'不會在字段末尾轉義反斜槓。 –

+2

@IslamAzab'escape_string'只是從PostgreSQL C庫中調用'PQescapeStringConn',所以如果它不能轉義反斜線,那麼它就不需要。或者我錯過了什麼? –