我有字符串的以下数组:结合字符串数组成一个字符串
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