Node DB Access
Appearance
|
ATK Howto: Node DB Access
|
Examples of Node DB Access
(boolean) addDb( &$record, [boolean $exectrigger = true], [string $mode = "add"], [array $excludelist = array()], array $record ) NB: pk not required
(boolean) updateDb( &$record, [bool $exectrigger = true], [array $excludes = ""], [array $includes = ""], array $record ) NB: pk required
(boolean) deleteDb( String $selector, [bool $exectrigger = true], [bool $failwhenempty = false] )
(boolean) copyDb( &$record, [string $mode = "copy"], array $record ) NB: pk required
(array) searchDb( String $expression, [string $searchmethod = "OR"] ) Searches all non hidden fields
Examples of $where
$where = "hoursbase.activitydate = '".$record['activitydate']['year']
. "-".$record['activitydate']["month"]."-".$record['activitydate']["day"]
. "'";
$where = "user_login_history.user_id=".$user["user_id"]
." AND login_date='".date("Y-m-d")."'");
selectDb($where,$order=null,$limit=null,$excludes=null, $includes=null, $mode=null); ($excludes is array of excluded table fields, ($includes is array of included table fields)
NOTE:
$nextID = atkGetDb () -> nextId ("table_name");
//----------------------------------------------------------------------
// Example Update or add record
$db = &atkGetDb();
$xnode = &atkgetNode("module_name.node_name");
// Find the record
$xrecs = $xnode->SelectDB("where_statement_SQL");
// Assume only 0 or 1 record returned
if (count($xrecs) > 0)
{
// Get the record
$xrecord = $xrecs[0];
// Maniplulate record here
// Update the table
$xnode->updateDb($xrecord, TRUE);
}
else
{
// Initialise the record
$xrecord = array();
$xrecord = $xnode->initial_values();
// Maniplulate record here
// Add record to the table
$xnode->addDb($xrecord, TRUE, "add");
}
// Commit the changes
$db->commit();
//----------------------------------------------------------------------
// Example - COPY Records from node A to Node B
$db = &atkGetDb();
$nodeA = &atkgetNode("module_name.node_name_A");
$nodeB = &atkgetNode("module_name.node_name_B");
// Get the records to be copied
$recs = $nodeA->selectDb("where_statement_cf_SQL");
// Copy them one at a time
foreach ($recs as $record)
{
$nodeB->addDB($record);
}
// Commit the changes
$db->commit();
//----------------------------------------------------------------------