Ruby 连接 Mysql - MySql2
Ruby 连接 MySql,我们推荐使用更高效的驱动 mysql2。
安装 mysql2 驱动:
gem install mysql2
你需要使用 –with-mysql-config 配置 mysql_config 的路径,如: –with-mysql-config=/some/random/path/bin/mysql_config。
1. 连接
连接数据库语法如下:
client = Mysql2::Client.new(:host => "localhost", :username => "root")
更多参数可以查看 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html。
2. 查询
results = client.query("SELECT * FROM users WHERE group='githubbers'")
3. 特殊字符转义
escaped = client.escape("gi'thu\"bbe\0r's") results = client.query("SELECT * FROM users WHERE group='#{escaped}'")
计算结果集返回的数量:
results.count
4. 迭代结果集
results.each do |row|
# row 是哈希
# 键值是数据库字段
# 值都是对应 MySQL中数据
puts row["id"] # row["id"].class == Fixnum
if row["dne"] # 不存在则是 nil
puts row["dne"]
end
end
#!/usr/bin/ruby -w
require 'mysql2'
client = Mysql2::Client.new(
:host => '127.0.0.1', # 主机
:username => 'root', # 用户名
:password => '123456', # 密码
:database => 'test', # 数据库
:encoding => 'utf8' # 编码
)
results = client.query("SELECT VERSION()")
results.each do |row|
puts row
end
以上实例运行输出结果为:
{"VERSION()"=>"5.6.21"}
5. 连接选项
Mysql2::Client.new( :host, :username, :password, :port, :database, :socket = '/path/to/mysql.sock', :flags = REMEMBER_OPTIONS | LONG_PASSWORD | LONG_FLAG | TRANSACTIONS | PROTOCOL_41 | SECURE_CONNECTION | MULTI_STATEMENTS, :encoding = 'utf8', :read_timeout = seconds, :write_timeout = seconds, :connect_timeout = seconds, :reconnect = true/false, :local_infile = true/false, :secure_auth = true/false, :default_file = '/path/to/my.cfg', :default_group = 'my.cfg section', :init_command => sql )
Ruby 是一门通用的语言,不仅仅是一门应用于WEB开发的语言,但 Ruby 在WEB应用及WEB工具中的开发是最常见的。使用Ruby您不仅可以编写自己的SMTP服务器,FTP程序,或Ruby Web服务器,而且还可以使用Ruby进行CGI编程。