2011-02-15 32 views
3

如果連接到MySQL與:perl DBIx sqlite {sqlite_unicode => 1}?

my $schema = MyDatabase::Main->connect("dbi:mysql:database=$database;host=$host",'root','', {mysql_enable_utf8 => 1}); 

的連接被強制爲UTF8;

連接到SQLite

my $schema = MyDatabase::Main->connect('dbi:SQLite:data/sample.db', {sqlite_unicode => 1}); 

連接似乎不爲UTF8;

的目的是爲了消除其同時獲取數據使用解碼(): 來自:

Mojo::ByteStream->new($cycle->type)->decode('utf-8') 

到:

$cycle->type 

感謝

回答

8

如果這個連接是什麼:

my $schema = MyDatabase::Main->connect(
    'dbi:SQLite:data/sample.db', 
    '', # empty username 
    '', # empty password 
    {sqlite_unicode => 1} 
); 

也許connect()正在尋找選項hash-ref作爲參數4,但沒有意識到SQLite不需要用戶名和密碼參數。