by tmtm

tmtm /ruby-mysql

MySQL connector for Ruby. pure Ruby version.

128 Stars 31 Forks Last release: Not found 142 Commits 17 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

= 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#changeuser, Mysql#createdb, Mysql#dropdb, Mysql#dumpdebuginfo, Mysql#sslset, Mysql#reconnect

  • Mysql#options でサポートしているオプションは次のものだけです: Mysql::INITCOMMAND, Mysql::OPTCONNECTTIMEOUT, Mysql::OPTLOCALINFILE, Mysql::OPTREADTIMEOUT, Mysql::OPTWRITETIMEOUT, Mysql::SETCHARSET_NAME. これら以外を指定すると "option not implementted" という warning が標準エラー出力に出力されます。

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

== Improvement from MySQL/Ruby 2.8.x

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

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

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

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

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

== Copyright

Author :: TOMITA Masahiro [email protected] Copyright :: Copyright (c) 2009-2012 TOMITA Masahiro License :: Ruby's

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.