そのため、.csvを解析して大きなMySQLクエリを出力するための小さなrubyスクリプトを作成しています。問題は、私が使用している名前の一部に一重引用符が付いていることです。これにより、SQLが台無しになります...
理由はわかりませんが、引用符をエスケープ引用符にgsubする試みは失敗しました。しかし、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)