所以我正在制作一个小红宝石脚本来解析 .csv 并输出一个大型 MySQL 查询。问题是我正在使用的一些名称有单引号,这会弄乱我的 SQL...
我将引号转换为转义引号的尝试失败了,但我不确定为什么。但是当我打开我的 query.txt 文件时,肯定会出现像 D'vinci 这样的名称,而不是 D\'vinci。
我究竟做错了什么?
require 'csv'
filename = ARGV[0]
q = "INSERT INTO `table` (`username`, `password`, `firstname`, `lastname`, `email`) VALUES "
CSV.foreach(filename) do |row|
last_name, first_name, email, id = row.each {|c| c.gsub "'", "\'"}
q += "('#{id}', SHA1('password'), '#{first_name}', '#{last_name}', '#{email}'),\n"
end
q += ";"
File.open("query.txt", 'w').write(q)