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 > >

SEE ALSO

Dancer::Plugin::Database

Dancer

DBI