| 
<?php
/******************************************** INSTRUCTIONS TO USE **************************************************************
 *    --------------------------------------------------------------------------------------------------------------------------
 *    Program           : MySQL Database Layer With Dynamic SQL Generators, PHP Class Library
 *    Files                : database.inc.php, test.php
 *    Author            : Lasantha Samarakoon
 *    Date released     : Monday, September 27, 2009
 *    Email             : [email protected]
 *    Licence           : http://www.gnu.org/licenses/gpl.txt
 *    --------------------------------------------------------------------------------------------------------------------------
 *    This program is a freeware, which falls under GNU Genral Public Licence.
 *    ---------------------------------------------------------------------------------------------------------------------------
 *    You can modify this program, without any permission from the author. But be kind enough to send the updated version to the
 *    author through the above mentioned Email address.
 *    ---------------------------------------------------------------------------------------------------------------------------
 *    Documentation:
 *            Please refer the test.php file for hints on the usage of this class library.
 *    ---------------------------------------------------------------------------------------------------------------------------
 *
 *    ************************************* PROUD TO BE A SRI LANKAN...!!! ******************************************************
 
 DOCUMENTATION:
 
 Database class:
 Properties:
 string host
 - database host name
 
 string username
 - database server's username
 
 string password
 - database server's password
 
 string database
 - database name
 
 string connection
 - database connection handler
 
 Methods:
 new Database([string host], [string username], [string password], [string database])
 - constructor
 
 object connect() throws DatabaseException
 - connect to the database server
 
 object use_db([string database]) throws DatabaseException
 - change the working database
 
 resultset query($sql) throws DatabaseException
 - execute an sql query and return the resultset if available
 
 resultset select(string table_name, [array fields], [array criteria]) throws DatabaseException
 - sql select command generator
 - if fields = null, it means select all
 
 object insert(string table_name, array values) throws DatabaseException
 - sql insert command generate
 
 object update(string table_name, array values, [array criteria]) throws DatabaseException
 - sql update command generator
 
 object delete(string table_name, [array criteria]) throws DatabaseException
 - sql delete command generator
 
 object refresh() throws DatabaseException
 - refresh the connection by closing and re-connecting
 
 TEST UNIT:
 
 Create database:
 Database name: test
 Table: users
 - uid int                : not null, primary key, auto increment
 - username varchar(20)    : not null
 - password varchar(20)    : not null
 - role varchar(10)        : not null
 
 Assumptions:
 Database host            : localhost
 Database username        : root
 Database password        : mypass
 */
 
 require_once 'database.inc.php';
 
 // this method displays data by fetching it from the database
 function display_data($db) {
 
 // select username, password from users
 $res = $db->select('users', array('username', 'password'));
 
 // traverse through the resultset
 while($r = mysql_fetch_array($res)) {
 
 echo "username: " . $r['username'] . "<br />\n";
 echo "password: " . $r['password'] . "<br />\n";
 echo "<hr />\n";
 }
 
 echo "<hr />\n";
 }
 
 // create object
 $db = new Database('localhost', 'root', 'mypass');
 
 // connect to the database + change the database file
 $db->connect()->use_db('test');
 
 // add few data
 $db->insert('users', array("username" => "\"user1\"", "password" => "\"pass1\"", "role" => "\"admin\""));
 $db->insert('users', array("username" => "\"user2\"", "password" => "\"pass2\"", "role" => "\"manager\""));
 $db->insert('users', array("username" => "\"user3\"", "password" => "\"pass3\"", "role" => "\"clerk\""));
 $db->insert('users', array("username" => "\"user4\"", "password" => "\"pass4\"", "role" => "\"guest\""));
 
 display_data($db);
 // update the table
 $db->update('users', array("username" => "\"new_user\""), array("uid = 2"));
 
 display_data($db);
 
 // delete row from the table
 $db->delete('users', array("username = \"user3\""));
 
 display_data($db);
 ?>
 |