« portsnapでportsツリーを最新にする | メイン | ZARD »

CDBIでset namesする

今更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'],
    },
);

About

2007年05月28日 03:23に投稿されたエントリーのページです。

ひとつ前の投稿は「portsnapでportsツリーを最新にする」です。

次の投稿は「ZARD」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。