MySQL connector for Ruby. pure Ruby version.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench FIX: bench/03_select.rb Jun 18, 2012
ext/mysql support JSON type on MySQL 5.7 Dec 30, 2015
lib Update charset.rb Apr 4, 2016
test support JSON type on MySQL 5.7 Dec 30, 2015
.autotest for autotest Jan 3, 2011
.document change document format to YARD. May 6, 2012
Gemfile add Gemfile Nov 16, 2014
Gemfile.lock add Gemfile Nov 16, 2014
README.rdoc update Copyright Apr 19, 2012
Rakefile add Rakefile for test Nov 16, 2014
ruby-mysql-ext.gemspec
ruby-mysql.gemspec version 2.9.14 Dec 30, 2015
setup.rb * 3.0.0-alpha Mar 22, 2009

README.rdoc

ruby-mysql

Description

MySQL connector for Ruby.

Installation

ruby setup.rb

Gem Installation

gem install ruby-mysql

Features/Problems

  • Ruby だけで書かれているのでコンパイル不要です。

  • Ruby 1.9.x の M17N に対応しています。

  • MySQL/Ruby 2.8.x とほぼ互換があります。

Synopsis

使用例:

my = Mysql.connect('hostname', 'username', 'password', 'dbname')
my.query("select col1, col2 from tblname").each do |col1, col2|
  p col1, col2
end
stmt = my.prepare('insert into tblname (col1,col2) values (?,?)')
stmt.execute 123, 'abc'

Incompatible with MySQL/Ruby 2.8.x

  • Ruby 1.8.x ではシフトJISのような安全でないマルチバイト文字セットに対して Mysql#escape_string を使用すると例外が発生します。

  • いくつかのメソッドがありません: Mysql#debug, Mysql#change_user, Mysql#create_db, Mysql#drop_db, Mysql#dump_debug_info, Mysql#ssl_set, Mysql#reconnect

  • Mysql#options でサポートしているオプションは次のものだけです: Mysql::INIT_COMMAND, Mysql::OPT_CONNECT_TIMEOUT, Mysql::OPT_LOCAL_INFILE, Mysql::OPT_READ_TIMEOUT, Mysql::OPT_WRITE_TIMEOUT, Mysql::SET_CHARSET_NAME. これら以外を指定すると “option not implementted” という warning が標準エラー出力に出力されます。

  • Mysql#use_result は Mysql#store_result と同じです。つまりサーバーから一気に結果セットを読み込みます。

Improvement from MySQL/Ruby 2.8.x

  • Ruby 1.9.x の M17N に対応しています。 mysqld へのクエリ文字列やプリペアドステートメントで与える値は mysqld との接続の文字コードに自動的に変換されます。 mysqld からの結果文字列は接続文字コードとして取り出されます。

  • Mysql::Result, Mysql::Stmt が Enumerable を include しています。

  • ブロックなしの Mysql::Result#each, each_hash Mysql::Stmt#each, each_hash が Enumerator を返します。

  • Mysql#charset= で接続 charset を指定できます。

  • Mysql::Error だけでなく、エラー種別ごとにエラークラスが用意されてます。たとえば、構文エラーの場合は Mysql::ServerError::ParseError など。これらのエラーは Mysql::Error の継承クラスです。

Copyright

Author

TOMITA Masahiro <tommy@tmtm.org>

Copyright

Copyright © 2009-2012 TOMITA Masahiro

License

Ruby's