Class D B Storage.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>funGL: DB_storage Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.0 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<h1>DB_storage Class Reference</h1><p>Inheritance diagram for DB_storage:
<p><center><img src="class_d_b__storage.png" usemap="#DB_storage_map" border="0" alt=""></center>
<map name="DB_storage_map">
<area href="class_p_e_a_r.html" alt="PEAR" shape="rect" coords="0, 0, 78, 24">
</map>
<a href="class_d_b__storage-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a0">DB_storage</a> ($table, $keycolumn, &$dbh, $validator=null)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a1">_makeWhere</a> ($keyval=null)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a2">setup</a> ($keyval)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a3">insert</a> ($newpk)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a4">toString</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a5">dump</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">& </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a6">create</a> ($table, &$data)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a7">set</a> ($property, $newvalue)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">& </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a8">get</a> ($property)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a9">_DB_storage</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a10">store</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#a11">remove</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o0">$_table</a> = null</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o1">$_keycolumn</a> = null</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o2">$_dbh</a> = null</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o3">$_properties</a> = array()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o4">$_changes</a> = array()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o5">$_readonly</a> = <a class="el" href="errors_8inc.html#a22">false</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_b__storage.html#o6">$_validator</a> = null</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Provides an object interface to a table row<p>
It lets you add, delete and change rows using objects rather than SQL statements.
<p>
<hr><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" name="a0" doxytag="DB_storage::DB_storage"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::DB_storage </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname" nowrap> <em>table</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>$ </td>
<td class="mdname" nowrap> <em>keycolumn</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>&$ </td>
<td class="mdname" nowrap> <em>dbh</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>$ </td>
<td class="mdname" nowrap> <em>validator</em> = <code>null</code></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Constructor<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>$table</em> </td><td>string the name of the database table</td></tr>
<tr><td valign="top"></td><td valign="top"><em>$keycolumn</em> </td><td>mixed string with name of key column, or array of strings if the table has a primary key of more than one column</td></tr>
<tr><td valign="top"></td><td valign="top"><em>$dbh</em> </td><td>object database connection object</td></tr>
<tr><td valign="top"></td><td valign="top"><em>$validator</em> </td><td>mixed function or method used to validate each new value, called with three parameters: the name of the field/column that is changing, a reference to the new value and a reference to this object </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a9" doxytag="DB_storage::_DB_storage"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::_DB_storage </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Destructor, calls <a class="el" href="class_d_b__storage.html#a10">DB_storage::store()</a> if there are changes that are to be kept. </td>
</tr>
</table>
<a class="anchor" name="a1" doxytag="DB_storage::_makeWhere"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::_makeWhere </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname1" valign="top" nowrap> <em>keyval</em> = <code>null</code> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Utility method to build a "WHERE" clause to locate ourselves in the table.<p>
XXX future improvement: use rowids?<p>
private </td>
</tr>
</table>
<a class="anchor" name="a6" doxytag="DB_storage::create"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">& DB_storage::create </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname" nowrap> <em>table</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>&$ </td>
<td class="mdname" nowrap> <em>data</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Static method used to create new <a class="el" href="class_d_b.html">DB</a> storage objects. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>$data</em> </td><td>assoc. array where the keys are the names of properties/columns </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>object a new instance of DB_storage or a subclass of it </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a5" doxytag="DB_storage::dump"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::dump </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Dump the contents of this object to "standard output". </td>
</tr>
</table>
<a class="anchor" name="a8" doxytag="DB_storage::get"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">& DB_storage::get </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname1" valign="top" nowrap> <em>property</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Fetch an attribute value.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>string</em> </td><td>attribute name</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>attribute contents, or null if the attribute name is unknown </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a3" doxytag="DB_storage::insert"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::insert </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname1" valign="top" nowrap> <em>newpk</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Create a new (empty) row in the configured table for this object. </td>
</tr>
</table>
<a class="anchor" name="a11" doxytag="DB_storage::remove"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::remove </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Remove the row represented by this object from the database.<p>
<dl compact><dt><b>Returns:</b></dt><dd>mixed DB_OK or a <a class="el" href="class_d_b.html">DB</a> error </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a7" doxytag="DB_storage::set"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::set </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname" nowrap> <em>property</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>$ </td>
<td class="mdname" nowrap> <em>newvalue</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Modify an attriute value. </td>
</tr>
</table>
<a class="anchor" name="a2" doxytag="DB_storage::setup"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::setup </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">$ </td>
<td class="mdname1" valign="top" nowrap> <em>keyval</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Method used to initialize a DB_storage object from the configured table.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>$keyval</em> </td><td>mixed the key[s] of the row to fetch (string or array)</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>int DB_OK on success, a <a class="el" href="class_d_b.html">DB</a> error if not </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a10" doxytag="DB_storage::store"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::store </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Stores changes to this object in the database.<p>
<dl compact><dt><b>Returns:</b></dt><dd>DB_OK or a <a class="el" href="class_d_b.html">DB</a> error </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a4" doxytag="DB_storage::toString"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::toString </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Output a simple description of this DB_storage object. <dl compact><dt><b>Returns:</b></dt><dd>string object description </dd></dl>
</td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="o4" doxytag="DB_storage::$_changes"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_changes = array() </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
an assoc with the names of the properties in this object that have been changed since they were fetched from the database </td>
</tr>
</table>
<a class="anchor" name="o2" doxytag="DB_storage::$_dbh"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_dbh = null </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
<a class="el" href="class_d_b.html">DB</a> connection handle used for all transactions </td>
</tr>
</table>
<a class="anchor" name="o1" doxytag="DB_storage::$_keycolumn"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_keycolumn = null </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
which column(s) in the table contains primary keys, can be a string for single-column primary keys, or an array of strings for multiple-column primary keys </td>
</tr>
</table>
<a class="anchor" name="o3" doxytag="DB_storage::$_properties"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_properties = array() </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
an assoc with the names of database fields stored as properties in this object </td>
</tr>
</table>
<a class="anchor" name="o5" doxytag="DB_storage::$_readonly"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_readonly = <a class="el" href="errors_8inc.html#a22">false</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
flag that decides if data in this object can be changed. objects that don't have their table's key column in their property lists will be flagged as read-only. </td>
</tr>
</table>
<a class="anchor" name="o0" doxytag="DB_storage::$_table"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_table = null </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
the name of the table (or view, if the backend database supports updates in views) we hold data from </td>
</tr>
</table>
<a class="anchor" name="o6" doxytag="DB_storage::$_validator"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">DB_storage::$_validator = null </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
function or method that implements a validator for fields that are set, this validator function returns true if the field is valid, false if not </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li>C:/workspace/funGL/PEAR/DB/<a class="el" href="storage_8php.html">storage.php</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun May 15 01:00:20 2005 for funGL by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.0 </small></address>
</body>
</html>
Other Polls And Voting Scripts: