今更DBICでなくCDBIネタ。事情によりmy.cnfを書き換える事ができないのでset names utf8しようとしたらやり方が判らず、しばらくいらいらしたのでメモ。
環境はMySQL 5.0.18 + Class::DBI 3.000014
package MyApp::Model::CDBI; use strict; use base qw[ Catalyst::Model::CDBI Class::DBI::mysql ]; __PACKAGE__->config( dsn => 'DBI:mysql:dbname=データベース名', user => 'データベースユーザ', password => 'データベースパスワード', options => {}, relationships => 1 ); 1;
package MyApp::Model::CDBI::Users; use strict; use base 'MyApp::Model::CDBI'; __PACKAGE__->db_Main->do( q(SET NAMES utf8) ); __PACKAGE__->set_up_table('users'); 1;
上記はCatalystのModel例。
ちなみにDBICは下記のような感じでいけるらしい。
__PACKAGE__->connection( 'dbi:mysql:foo', 'root', { on_connect_do => ['SET NAMES utf8'], }, );