RubyでDB操作をする際はActiveRecordを利用するのですが、事情があってActiveRecordが利用できない環境でDB操作の必要があったのでmysql2の操作をするメモ。
信頼できない文字列を利用してSQLを組み立てる時はMysql2::Client.escape
するのを忘れずに。
require "mysql2" host = "example.rds.amazonaws.com" user = "admin" password = "secret" database = "example_production" db = Mysql2::Client.new(host: host, username: user, password: password, database: database) stmt = db.prepare("INSERT INTO users (name, email) VALUES (?, ?)") [ { name: "user1", email: "user1@example.com" }, { name: "user2", email: "user2@example.com" }, ].each do |params| stmt.execute(params[:name], params[:email]) user_id = db.query("SELECT LAST_INSERT_ID() AS id").first["id"] params[:id] = user_id end rows = db.query("SELECT * FROM users") rows.each do |row| p row end