Ответ 1
Если возможно, используйте модуль Ruby DBI, и вместо того, чтобы пытаться процитировать ваши строки, используйте параметризованные подготовленные запросы, например:
dbh = DBI.connect("DBI:Mysql:test:localhost", "testuser", "testpass")
sth = dbh.prepare("INSERT INTO people (id, name, height) VALUES(?, ?, ?)")
File.open("people.txt", "r") do |f|
f.each_line do |line|
name, height = line.chomp.split("\t")
sth.execute(nil, name, height)
end
end
Цитата будет правильно обработана для вас, и уколы будут ушли в прошлое.
Изменить: Обратите внимание, что в этом примере nil передается как первый параметр для выполнения(). Это соответствует первому? в запросе и переводится в "NULL" модулем DBI. Другие параметры аналогичным образом правильно цитируются и вставляются в запрос.