我有字符串的以下數組:結合字符串數組成一個字符串
array = [id, message, date, length]
實施例:
array = ["1", "test's message", "2016-01-01", "15"]
我想把它合併成一個字符串。我將使用該字符串使用DB插入數據:
ActiveRecord::Base.connection.execute
我所做的:
result = "(#{array[0}', '#{array[1]}', '#{array[2]}', '#{array[3]}')"
message
包含特殊字符'
(ASCII碼039)。這會導致SQL異常。我如何構造一個包含'
字符的result
字符串?
編輯:
爲了把數據BD我用:
conn = ActiveRecord::Base.connection
sql = "INSERT INTO table_name (`id`, `message`, `date`, `length`) VALUES #{result}"
conn.execute sql
編輯:
我解決了這個利用AR方法:
ActiveRecord::Base.connection.quote(message)
你做錯了。有一個沒有任何理智的開發者會在2016年通過加入字符串來構建SQL。 – mudasobwa
在何處引發異常?在加載文件?在生成字符串?在SQL查詢期間? – sawa
'你做錯了。有一個沒有人理智的開發人員會在2016年通過加入字符串來構建SQL。' 爲什麼?我需要表現。我想使用原始SQL將數據存入數據庫。我不需要AR,因爲我已驗證數據,而且我不擔心依賴注入,因爲它是簡單的背景作業。告訴我爲什麼。我有大量的數據和使用普通的sql增加插入20x – dewastator