Ruby mysql2でデータをテーブルに登録

データを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
関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です