データを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
関連記事の目次- CentOSにcurb(ruby)をインストールする手順
- Windows7にcurb(ruby)をインストールする手順
- Windows7の環境でRubyでMySQLに接続する手順
- Ruby curbでリファラーとユーザーエージェントを設定してWebページを取得
- Windows7でruby2、open-uriを使ってWebページを取得
- Ruby open-uriでリファラーとユーザーエージェントを設定してWebページを取得
- Ruby curb、scan、gsubを使ってWebページから特定の情報を抽出
- RubyでWebサイト上のPDFファイルの情報を取得
- RubyでWebサイト上のエクセルファイルの情報を取得
- Rubyで既存のエクセルファイルにデータを追加
- RubyでWebページの応答時間を計測し、メールで通知
- Ruby curbでPOSTデータ送信
- curbでRailsアプリのクッキー、セッションIDを取得し、ログイン
- Ruby mysql2でSQLインジェクション対策
- Ruby mysql2でデータをテーブルに登録