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