Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

perl DBIx sqlite {sqlite_unicode=>1}?

If connecting to MySQL with:

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

The connection is forced to utf8;

Connect to SQLite:

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

The connection seems not to be in utf8;

The purpose is to eliminate having to use decode() while fetching data: from:

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

to:

$cycle->type

Thanks

like image 773
Weiyan Avatar asked Jan 20 '23 11:01

Weiyan


1 Answers

What if you connect with this:

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

Maybe connect() is looking for the options hash-ref as argument four without realizing that SQLite doesn't need the username and password arguments.

like image 89
mu is too short Avatar answered Jan 23 '23 02:01

mu is too short