count [line 821]
int count(
[bool
$whereAddOnly = false])
|
|
Find the number of results from a simple query
for example
$object = new mytable(); $object->name = "fred"; echo $object->count();
Parameters:
debug [line 1693]
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 1720]
none debugLevel(
[int
$v = NULL])
|
|
sets and returns debug level eg. DB_DataObject::debugLevel(4);
Parameters:
delete [line 720]
bool delete(
[bool
$useWhere = 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 344]
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 762]
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 280]
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 184]
int get(
[string
$k = NULL], [string
$v = NULL])
|
|
Get a 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:
getDatabaseConnection [line 1656]
object The &getDatabaseConnection(
)
|
|
Gets the DB object related to an object - so you can use funky peardb stuf with it :)
getDatabaseResult [line 1672]
object The &getDatabaseResult(
)
|
|
Gets the DB result object related to the objects active query
- so you can use funky pear stuff with it - like pager for example.. :)
getLink [line 1342]
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 1401]
array &getLinkArray(
mixed
$row, [mixed
$table = NULL])
|
|
return a list of options for a linked table
This 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
getLinks [line 1285]
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 442]
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 519]
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();
joinAdd [line 1476]
none joinAdd(
[optional
$obj = false])
|
|
joinAdd - adds another dataobject to this, building a joined query.
example (requires links.ini to be set up correctly) // get all the images for product 24 $i = new DataObject_Image(); $pi = new DataObjects_Product_image(); $pi->product_id = 24; // set the product id to 24 $i->joinAdd($pi); // add the product_image connectoin $i->find(); while ($i->fetch()) { // do stuff } // an example with 2 joins // get all the images linked with products or productgroups $i = new DataObject_Image(); $pi = new DataObject_Product_image(); $pgi = new DataObject_Productgroup_image(); $i->joinAdd($pi); $i->joinAdd($pgi); $i->find(); while ($i->fetch()) { // do stuff }
Parameters:
limit [line 467]
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 418]
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 860]
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 1753]
error raiseError(
int
$message, [int
$type = NULL], [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 492]
none selectAdd(
[string
$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");
Parameters:
setFrom [line 1577]
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 223]
object &staticGet(
string
$class, string
$k, [string
$v = NULL])
|
|
An 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 1785]
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.. THIS STILL NEEDS FURTHER INVESTIGATION
update [line 632]
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 1621]
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 394]
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: