- ·上一篇文章:Ruby 数据库访问 – DBI 教程
- ·下一篇文章:Ruby CGI 编程
Ruby 连接 Mysql – MySql2
Ruby 连接 Mysql - MySql2前面一章节我们介绍了 Ruby DBI 的使用。这章节我们技术 Ruby 连接 Mysql 更高效的驱动 mysql2,目前也推荐使用这种方式连接 MySql。安装 mysql2 驱动:gem install mysql2你需要使用 –with-mysql-config 配置 mysql_config 的路径,如: –with-mysql-config=/some/random/path/bin/mysql_config。连接连接数据库语法如下:client = Mysql2:
:
Client.new(:
host => "localhost", :
username => "root")更多参数可以查看 http:
//api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html。查询results = client.query("SELECT * FROM users WHERE group='githubbers'")特殊字符转义escaped = client.escape("gi'thu\"bbe\0r's")results = client.query("SELECT * FROM users WHERE group='
#{escaped}'")计算结果集返回的数量:
results.count迭代结果集:results.each do |row|
# row 是哈希
# 键值是数据库字段
# 值都是对应 MySQL中数据puts row["id"]
# row["id"].class == Fixnumif row["dne"]
# 不存在则是 nilputs row["dne"]endend实例
#!/usr/bin/ruby -wrequire '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 rowend以上实例运行输出结果为:{"VERSION()"=>"5.6.21"}连接选项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)更多内容请参阅:http:
//www.rubydoc.info/gems/mysql2/0.2.3/frames。
:
Client.new(:
host => "localhost", :
username => "root")更多参数可以查看 http:
//api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html。查询results = client.query("SELECT * FROM users WHERE group='githubbers'")特殊字符转义escaped = client.escape("gi'thu\"bbe\0r's")results = client.query("SELECT * FROM users WHERE group='
#{escaped}'")计算结果集返回的数量:
results.count迭代结果集:results.each do |row|
# row 是哈希
# 键值是数据库字段
# 值都是对应 MySQL中数据puts row["id"]
# row["id"].class == Fixnumif row["dne"]
# 不存在则是 nilputs row["dne"]endend实例
#!/usr/bin/ruby -wrequire '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 rowend以上实例运行输出结果为:{"VERSION()"=>"5.6.21"}连接选项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)更多内容请参阅:http:
//www.rubydoc.info/gems/mysql2/0.2.3/frames。
Ruby 连接 Mysql – MySql2