NAME

Mojo::SQLite::Database - Database

SYNOPSIS

use Mojo::SQLite::Database;

my $db = Mojo::SQLite::Database->new(sqlite => $sql, dbh => $dbh);
$db->query('select * from foo')
  ->hashes->map(sub { $_->{bar} })->join("\n")->say;

DESCRIPTION

Mojo::SQLite::Database is a container for DBD::SQLite database handles used by Mojo::SQLite.

ATTRIBUTES

Mojo::SQLite::Database implements the following attributes.

dbh

my $dbh = $db->dbh;
$db     = $db->dbh(DBI->new);

DBD::SQLite database handle used for all queries.

sqlite

my $sql = $db->sqlite;
$db     = $db->sqlite(Mojo::SQLite->new);

Mojo::SQLite object this database belongs to.

METHODS

Mojo::SQLite::Database inherits all methods from Mojo::Base and implements the following new ones.

begin

my $tx = $db->begin;
my $tx = $db->begin('exclusive');

Begin transaction and return Mojo::SQLite::Transaction object, which will automatically roll back the transaction unless "commit" in Mojo::SQLite::Transaction has been called before it is destroyed.

# Insert rows in a transaction
eval {
  my $tx = $db->begin;
  $db->query('insert into frameworks values (?)', 'Catalyst');
  $db->query('insert into frameworks values (?)', 'Mojolicious');
  $tx->commit;
};
say $@ if $@;

A transaction locking behavior of deferred, immediate, or exclusive may optionally be passed; the default in DBD::SQLite is currently immediate. See "Transaction and Database Locking" in DBD::SQLite for more details.

disconnect

$db->disconnect;

Disconnect "dbh" and prevent it from getting cached again.

ping

my $bool = $db->ping;

Check database connection.

query

my $results = $db->query('select * from foo');
my $results = $db->query('insert into foo values (?, ?, ?)', @values);

Execute a blocking statement and return a Mojo::SQLite::Results object with the results. The DBD::SQLite statement handle will be automatically reused when it is not active anymore, to increase the performance of future queries.

BUGS

Report any issues on the public bugtracker.

AUTHOR

Dan Book, dbook@cpan.org

COPYRIGHT AND LICENSE

Copyright 2015, Dan Book.

This library is free software; you may redistribute it and/or modify it under the terms of the Artistic License version 2.0.

SEE ALSO

Mojo::SQLite