Rubí conexión Mysql - mysql2
En la sección anterior hemos introducido el Rubí DBI utiliza. En este capítulo de nuestra relación de índole técnica Rubí Mysql mysql2 conducción más eficiente, también es el método recomendado para conectar MySQL.
Instalación mysql2 unidad:
gem install mysql2
Es necesario utilizar la ruta de acceso de configuración mysql_config -con-mysql-config, tales como: -con-mysql-config = / some / random / ruta / bin / mysql_config.
conexión
sintaxis de conexión de base de datos es la siguiente:
# 更多参数可以查看 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter client = Mysql2::Client.new(:host => "localhost", :username => "root")
investigación
results = client.query("SELECT * FROM users WHERE group='githubbers'")
escape de carácter especial
escaped = client.escape("gi'thu\"bbe\0r's") results = client.query("SELECT * FROM users WHERE group='#{escaped}'")
Los resultados establecen el número de devoluciones:
results.count
iterativo conjunto de resultados:
results.each do |row| # row 是哈希 # 键值是数据库字段 # 值都是对应 MySQL中数据 puts row["id"] # row["id"].class == Fixnum if row["dne"] # 不存在则是 nil puts row["dne"] end end
Ejemplos
#!/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
Ejecutar la salida anterior ejemplo es:
{"VERSION()"=>"5.6.21"}
Opciones de conexión
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 )
Para obtener más información, consulte: http://www.rubydoc.info/gems/mysql2/0.2.3/frames .