NAME
CallBackery::Database - database access helpers
SYNOPSIS
use CallBackery::Database;
my $db = CallBackery::Database->new(app=>$self->config);
my ($fields,$values) = $self->map2sql(table,data);
my $selWhere = $self->map2where(table,data);
my $rowHash = $self->fetchRow(table,{field=>val,field=>val},selExpression?);
my $value = $self->fetchValue(table,{field=>val,field=>val},column);
my $id = $self->matchData(table,{field=>val,field=>val});
my $id = $self->lookUp(table,field,value);
my $id = $self->updateOrInsertData(table,{dataField=>val,...},{matchField=>val,...}?);
my $id = $self->insertIfNew(table,{field=>val,field=>val});
DESCRIPTION
Database access helpers.
config
object needs access to the system config to get access to the database
dhb
a dbi database handle
- my($fields,$values) = $self->
map2sql(table,data)
; -
Provide two hash pointers and quote the field names for inclusion into an SQL expression. Build field names according to the table_field rule.
- my $sqlWhere = $self->
map2where(table,data)
; -
build a where statement Find a record matching the given data in a table the data is a map. Quote field names and values. Build field names according to the table_field rule.
- $hashRef = $self->
getMap(table,column)
; -
Get an array of hashes with model and label tags:
[{model: x, label: y},{id ...},...]
- $hashRef = $self->
getRowHash(table,{key=
value,....},$selectExpr?)>; -
Get a hash with record index as key. Optionally with a list of columns to return.
{ 2 => { a=>x, b=>y }, 3 => { a=>k, b=>r } }
- $id = $self->
fetchRow(table,{key=
value,key=>value},$selectExp ?)>; -
Find a record matching the given data in a table and return a hash of the matching record.
- $id = $self->
fetchValue(table,{key=
value,key=>value},column)>; -
Find a record matching the given data in a table and returns the value in column.
- $id = $self->
matchData(table,data)
; -
Find a record matching the given data in a table the data is a map.
- $id = $self->
lookUp(table,column,value)
-
Lookup the value in table in table_column and return table_id. Throw an exception if this fails. Use matchData if you are just looking.
- $id = $self->
updateOrInsertData(table,data,match?)
-
Insert the given data into the table. If a match map is given, try an update first with the given match only insert when update has 0 hits.
- $id = $self->
insertIfNew(table,data)
-
Lookup the given data. If it is new, insert a record. Returns the matching Id.
- $id = $self->
deleteData(table,id)
-
Delete data from table. Given the record id. Returns true if the record was deleted.
- $id = $self->
deleteDataWhere(table,{key=
val,key=>val})> -
Delete data from table. Given the column title and the matching value. Returns true if the record was deleted.
- getConfigValue($key)
-
return a raw data value from the config table
- setConfigValue($key,$value)
-
write a config value
COPYRIGHT
Copyright (c) 2015 by OETIKER+PARTNER AG. All rights reserved.
AUTHOR
Tobi Oetiker <tobi@oetiker.ch>
HISTORY
2010-06-12 to 1.0 initial
2013-11-19 to 1.1 converted to mojo