Jump to content

Node DB Access

From NusaATK

ATK Howto: Node DB Access

Complexity: Easy
Author: Wayne Hulls

List of other Howto's

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();

//----------------------------------------------------------------------