データをmysql2でテーブルに登録する方法を確認しました。
●サンプルコード
登録するデータは各テーブルカラム毎にitems配列に保存されています。
client.escape()でエスケープした値を登録します。
※client.escape()については以下の記事参照
Ruby mysql2でSQLインジェクション対策
require 'mysql2'
client = Mysql2::Client.new(
:host => "localhost",
:database => "db_name",
:username => "user_name" ,
:password => "xxxxxx"
)
items.each do |item|
ary_col = []
ary_dat = []
item.each{ |key,value|
ary_col.push(key)
tmp_dat = client.escape(value)
tmp_dat = "'#{tmp_dat}'"
ary_dat.push(tmp_dat)
}
cols = ary_col.join(",")
datas = ary_dat.join(",")
sql = "INSERT INTO s_tables (#{cols}) VALUES (#{datas})"
client.query(sql)
end