GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
DBIx::Sunny(3) User Contributed Perl Documentation DBIx::Sunny(3)

DBIx::Sunny - Simple DBI wrapper

    use DBIx::Sunny;

    my $dbh = DBIx::Sunny->connect(...);

    # or 

    use DBI;

    my $dbh = DBI->connect(.., {
        RootClass => 'DBIx::Sunny',
        PrintError => 0,
        RaiseError => 1,
    });

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.

Set AutoInactiveDestroy to true.
DBIx::Sunny sets AutoInactiveDestroy as true.
[SQLite/MySQL/Pg] Auto encode/decode UTF-8
DBIx::Sunny sets sqlite_unicode, mysql_enable_utf8 and pg_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)
    
Named placeholder
select_(one|row|all) and query methods support named placeholder.

  $dbh->select_all('SELECT * FROM users WHERE id IN (:ids) AND status = :status', {
      ids    => [1,2,3],
      status => 'active',
  });
  #SQL: 'SELECT * FROM users WHERE id IN (?,?,?) AND status = ?'
  #@BIND: (1, 2, 3, 'active')
    
Typed bind parameters
DBIx::Sunny allows you to specify data types of bind parameters. If a bind parameter is SQL::Maker::SQLType object, its value is passed as its type, otherwise it is passed as default type (VARCHAR).

  use SQL::Maker::SQLType qw/sql_type/;
  use DBI qw/:sql_types/

  $dbh->query(
      'INSERT INTO bin_table (bin_col) VALUES (?)',
      sql_type(\"\xDE\xAD\xBE\xEF", SQL_BINARY)),
  );
    

"$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.

Masahiro Nagano <kazeburo KZBRKZBR@ gmail.com>

DBI, Amon2::DBI

Copyright (C) Masahiro Nagano

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2020-07-29 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.