Skip to content
This repository

MySQL connector for Ruby. pure Ruby version.

version 2.9.12

latest commit ede86e1a28
TOMITA Masahiro authored
Octocat-spinner-32 bench FIX: bench/03_select.rb June 18, 2012
Octocat-spinner-32 ext avoid compiler warning April 09, 2013
Octocat-spinner-32 lib version 2.9.12 December 17, 2013
Octocat-spinner-32 spec version 2.9.12 December 17, 2013
Octocat-spinner-32 .autotest for autotest January 03, 2011
Octocat-spinner-32 .document change document format to YARD. May 06, 2012
Octocat-spinner-32 .rspec for autotest January 03, 2011
Octocat-spinner-32 README.rdoc update Copyright April 19, 2012
Octocat-spinner-32 ruby-mysql-ext.gemspec version 2.9.12 December 17, 2013
Octocat-spinner-32 ruby-mysql.gemspec version 2.9.12 December 17, 2013
Octocat-spinner-32 setup.rb * 3.0.0-alpha March 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

Something went wrong with that request. Please try again.