Latest web development tutorials

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.html
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 .