require 'rubygems'
require 'mysql'
hostname = 'localhost'
username = 'yourname'
passowrd = 'password'
database = 'mysql'
begin
db = Mysql::connect(hostname, username, passowrd, database)
sql = 'SELECT `HOST`, `USER` FROM `user`'
result_sets = db.query sql
puts '[Statement Results]'
puts "Search Results: #{result_sets.num_rows} found."
result_sets.each do |row|
puts row.join(', ')
end
sql = 'SELECT `HOST`, `USER` FROM `user` WHERE `HOST` = ?'
prepared_sql = db.prepare(sql)
prepared_sql.execute('localhost')
puts '[Prepared Statement Results]'
puts "#{prepared_sql.num_rows} rows found."
prepared_sql.each do |row|
puts row.join(', ')
end
rescue Mysql::Error => e
puts "[Error:#{e.errno}] #{e.error}"
ensure
result_sets.free if result_sets
prepared_sql.free_result if prepared_sql
prepared_sql.close if prepared_sql
db.close if db
end
実行結果例
[Statement Results]
Search Results: 3 found.
127.0.0.1, root
localhost, root
localhost, yourname
[Prepared Statement Results]
2 rows found.
localhost, root
localhost, yourname
Mysql::Result クラスの each_hash を利用する場合
result_sets.each_hash do |rows|
puts "#{rows['HOST']} : #{rows['USER']}"
end
実行結果例
[Statement Results]
Search Results: 3 found.
127.0.0.1, root
localhost, root
localhost, yourname