NAME
Dancer::Plugin::Database::Handle
DESCRIPTION
Subclassed DBI connection handle with added features
SYNOPSIS
# in your Dancer app:
database->quick_insert($tablename, \%data);
# Updating a record where id = 42:
database->quick_update($tablename, { id => 42 }, { foo => 'New value' });
Added features
A Dancer::Plugin::Database::Handle
object is a subclassed DBI::st DBI database handle, with the following added convenience methods:
- quick_insert
-
database->quick_insert('mytable', { foo => 'Bar', baz => 5 });
Given a table name and a hashref of data (where keys are column names, and the values are, well, the values), insert a row in the table.
- quick_update
-
database->quick_update('mytable', { id => 42 }, { foo => 'Baz' });
Given a table name, a hashref describing a where clause and a hashref of changes, update a row.
The second parameter is a hashref of field => 'value', each of which will be included in the WHERE clause used, for instance:
{ id => 42 }
Will result in an SQL query which would include:
WHERE id = 42
When more than one field => value pair is given, they will be ANDed together:
{ foo => 'Bar', bar => 'Baz' }
Will result in:
WHERE foo = 'Bar' AND bar = 'Baz'
(Actually, parameterised queries will be used, with placeholders, so SQL injection attacks will not work, but it's easier to illustrate as though the values were interpolated directly.)
- quick_delete
-
database->quick_delete($table, { id => 42 });
Given a table name and a hashref to describe the rows which should be deleted, delete them.
All of the convenience methods provided take care to quote table and column names using DBI's quote_identifier
, and use parameterised queries to avoid SQL injection attacks. See http://www.bobbytables.com/ for why this is important, if you're not familiar with it.
AUTHOR
David Precious <<davidp@preshweb.co.uk
> >