DESCRIPTION
DBIx::Sunny is a simple DBI wrapper. It provides better usability for
you. This module based on Amon2::DBI. DBIx::Sunny supports only SQLite
and MySQL.
FEATURES
Set AutoInactiveDestroy to true.
DBIx::Sunny sets AutoInactiveDestroy as true.
[SQLite/MySQL] Auto encode/decode utf-8
DBIx::Sunny sets sqlite_unicode and mysql_enable_utf8 automatically.
[SQLite] Performance tuning
DBIx::Sunny sets sqlite_use_immediate_transaction to true, and
executes these PRAGMA statements
PRAGMA journal_mode = WAL
PRAGMA synchronous = NORMAL
Nested transaction management.
DBIx::Sunny supports nested transaction management based on RAII
like DBIx::Class or DBIx::Skinny. It uses DBIx::TransactionManager
internally.
Error Handling
DBIx::Sunny sets RaiseError and ShowErrorStatement as true.
DBIx::Sunny raises exception and shows current statement if your
$dbh occurred exception.
SQL comment
DBIx::Sunny adds file name and line number as SQL comment that
invokes SQL statement.
Easy access to last_insert_id
DBIx::Sunny's last_insert_id needs no arguments. It's shortcut for
mysql_insertid or last_insert_rowid.
Auto expanding arrayref bind parameters
select_(one|row|all) and query methods support auto-expanding
arrayref bind parameters.
$dbh->select_all('SELECT * FROM id IN (?)', [1 2 3])
#SQL: 'SELECT * FROM id IN (?,?,")'
#@BIND: (1, 2, 3)
ADDITIONAL METHODS
$col = $dbh->select_one($query, @bind);
Shortcut for prepare, execute and fetchrow_arrayref->[0]
$row = $dbh->select_row($query, @bind);
Shortcut for prepare, execute and fetchrow_hashref
$rows = $dbh->select_all($query, @bind);
Shortcut for prepare, execute and selectall_arrayref(.., { Slice =>
{} }, ..)
$dbh->query($query, @bind);
Shortcut for prepare, execute.