count [line 724]
find the number of results from a simple query
for example
$object = new mytable(); $object->name = "fred"; echo $object->count();
debug [line 1368]
none debug(
string
$message, [string
$logtype = 0], [string
$level = 1])
|
|
Debugger. - use this in your extended classes to output debugging information.
Uses DB_DataObject::DebugLevel(x) to turn it on
Parameters:
debugLevel [line 1393]
none debugLevel(
[int
$v = NULL])
|
|
sets and returns debug level eg. DB_DataObject::debugLevel(4);
Parameters:
delete [line 637]
boolean delete(
[boolean
$use_where = FALSE])
|
|
Deletes items from table which match current objects variables
Returns the TRUE on success
for example
Designed to be extended
$object = new mytable(); $object->ID=123; echo $object->delete(); // builds a conditon $object = new mytable(); $object->whereAdd('age > 12'); $object->delete(TRUE); // use the condition
Parameters:
fetch [line 324]
fetches next row into this objects var's
returns 1 on success 0 on failure
Example $object = new mytable(); $object->name = "fred"; $object->find(); $store = array(); while ($object->fetch()) { echo $this->ID; $store[] = $object; // builds an array of object lines. }
to add features to a fetch function fetch () { $ret = parent::fetch(); $this->date_formated = date('dmY',$this->date); return $ret; }
fetchRow [line 665]
boolean fetchRow(
[int
$row = NULL])
|
|
fetches a specific row into this object variables
Not recommended - better to use fetch()
Returens TRUE on success
Parameters:
find [line 260]
int find(
[boolean
$n = FALSE])
|
|
find results, either normal or crosstable
for example
$object = new mytable(); $object->ID = 1; $object->find();
will set $object->N to number of rows, and expects next command to fetch rows will return $object->N
Parameters:
get [line 163]
int get(
string
$k, [string
$v = NULL])
|
|
get an result using key, value
for example $object->get("ID",1234); Returns Number of rows located (usually 1) for success, and puts all the table columns into this classes variables
see the fetch example on how to extend this.
if no value is entered, it is assumed that $key is a value and get will then use the first key in _get_keys to obtain the key.
Parameters:
getLink [line 1191]
mixed &getLink(
string
$row, [string
$table = NULL], [string
$link = FALSE])
|
|
return name from related object
There are two ways to use this, one is to set up a <dbname>.links.ini file into a static property named <dbname>.links and specifies the table joins, the other is highly dependant on naming columns 'correctly' :) using colname = xxxxx_yyyyyy xxxxxx = related table; (yyyyy = user defined..) looks up table xxxxx, for value id=$this->xxxxx stores it in $this->_xxxxx_yyyyy
you can also use $this->getLink('rowname.othertablecol','table','othertablecol')
Parameters:
getLinkArray [line 1244]
void &getLinkArray(
mixed
$row, [mixed
$table = NULL])
|
|
getLinks [line 1141]
load related objects
There are two ways to use this, one is to set up a <dbname>.links.ini file into a static property named <dbname>.links and specifies the table joins, the other highly dependent on naming columns 'correctly' :) using colname = xxxxx_yyyyyy xxxxxx = related table; (yyyyy = user defined..) looks up table xxxxx, for value id=$this->xxxxx stores it in $this->_xxxxx_yyyyy
groupBy [line 421]
none groupBy(
[string
$group = FALSE])
|
|
Adds a group by condition
$object->groupBy(); //reset the grouping $object->groupBy("ID DESC"); $object->groupBy("ID,age");
Parameters:
insert [line 501]
Insert the current objects variables into the database
Returns the ID of the inserted element - mysql specific = fixme?
for example
Designed to be extended
$object = new mytable(); $object->name = "fred"; echo $object->insert();
limit [line 446]
none limit(
[string
$a = NULL], [string
$b = NULL])
|
|
Sets the Limit
$boject->limit(); // clear limit $object->limit(12); $object->limit(12,10);
Parameters:
orderBy [line 398]
none orderBy(
[string
$order = FALSE])
|
|
Adds a order by condition
$object->orderBy(); //clears order by $object->orderBy("ID"); $object->orderBy("ID,age");
Parameters:
query [line 760]
none query(
string
$string)
|
|
sends raw query to database
Since _query has to be a private 'non overwriteable method', this is a relay
Parameters:
raiseError [line 1426]
error raiseError(
int
$message, int
$type, [int
$behaviour = NULL])
|
|
Default error handling is to create a pear error, but never return it.
if you need to handle errors you should look at setting the PEAR_Error callback this is due to the fact it would wreck havoc on the internal methods!
Parameters:
selectAdd [line 473]
none selectAdd(
[mixed
$k = NULL])
|
|
Adds a select columns
$object->selectAdd(); // resets select to nothing! $object->selectAdd("*"); // default select $object->selectAdd("unixtime(DATE) as udate"); $object->selectAdd("DATE");
setFrom [line 1282]
boolean setFrom(
array
&$from)
|
|
Copies items that are in the table definitions from an array or object into the current object will not override key values.
Parameters:
staticGet [line 202]
object &staticGet(
string
$class, string
$k, [string
$v = NULL])
|
|
a autoloading, caching static get method using key, value (based on get)
Usage: $object = DB_DataObject::staticGet("DbTable_mytable",12); or $object = DB_DataObject::staticGet("DbTable_mytable","name","fred");
or write it into your extended class: function &staticGet($k,$v=NULL) { return DB_DataObject::staticGet("This_Class",$k,$v); }
Parameters:
staticInitialize [line 1447]
error staticInitialize(
)
|
|
Define the $GLOBALS['_DB_DATAOBJECT_PRODUCTION'] variable
After Profiling DB_DataObject, I discoved that the debug calls where taking considerable time (well 0.1 ms), so this should stop those calls happening. by setting production =1 in the config, you disable all debug calls..
update [line 569]
Updates current objects variables into the database uses the _get_keys() to decide how to update Returns the TRUE on success
for example
$object = new mytable(); $object->get("ID",234); $object->email="testing@test.com"; if(!$object->update()) echo "UPDATE FAILED";
validate [line 1325]
validate - override this to set up your validation rules
validate the current objects values either just testing strings/numbers or using the user defined validate{Row name}() methods. will attempt to call $this->validate{column_name}() - expects TRUE = ok FALSE = ERROR you can the use the validate Class from your own methods.
whereAdd [line 373]
none whereAdd(
[string
$cond = FALSE], [string
$logic = "AND"])
|
|
Adds a condition to the WHERE statement, defaults to AND
$object->whereAdd(); //reset or cleaer ewhwer $object->whereAdd("ID > 20"); $object->whereAdd("age > 20","OR");
Parameters: