Latest web development tutorials

Ruby connexion Mysql - mysql2

La section précédente nous avons introduit le Ruby DBI utilise. Ce chapitre de notre connexion technique Ruby Mysql entraînement plus efficace mysql2, est également la méthode recommandée pour se connecter MySql.

Installation mysql2 lecteur:

gem install mysql2

Vous devez utiliser le chemin configuration mysql_config --with-mysql-config, tels que: --with-mysql-config = / un / aléatoire / chemin / bin / mysql_config.

raccordement

syntaxe de connexion de base de données est la suivante:

# 更多参数可以查看 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html
client = Mysql2::Client.new(:host => "localhost", :username => "root")

enquête

results = client.query("SELECT * FROM users WHERE group='githubbers'")

évasion de caractère spécial

escaped = client.escape("gi'thu\"bbe\0r's")
results = client.query("SELECT * FROM users WHERE group='#{escaped}'")

Les résultats donnent le nombre de retours:

results.count

Itératif jeu de résultats:

results.each do |row|
  # row 是哈希
  # 键值是数据库字段
  # 值都是对应 MySQL中数据
  puts row["id"] # row["id"].class == Fixnum
  if row["dne"]  # 不存在则是 nil
    puts row["dne"]
  end
end

Exemples

#!/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

Exécutez l'exemple ci-dessus est sortie:

{"VERSION()"=>"5.6.21"}

Options de connexion

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
  )

Pour plus d' informations, s'il vous plaît se référer à: http://www.rubydoc.info/gems/mysql2/0.2.3/frames .