Login   Register  
PHP Classes
elePHPant
Icontem

File: MYSQL_DATABASE.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Bryan Smith  >  MySQL Database  >  MYSQL_DATABASE.php  
File: MYSQL_DATABASE.php
Role: Class source
Content type: text/plain
Description: MYSQL_DATABASE class file.
Class: MySQL Database
MySQL database access wrapper
 

Contents

Class file image Download
<?php

require_once('DESTRUCTOR.php');

/**
 * Controls all functionality for database communications.
 * Copyright (C) 2005 - Bryan Smith
 */
class MYSQL_DATABASE extends DESTRUCTOR
{
    
/**
     * MySQL Database Object
     *
     * @var Object
     */
    
var $DataBase_;
    
/**
     * SQL Query provided by user
     *
     * @var String
     */
    
var $Query_;
    
/**
     * Entire Result Set
     *
     * @var Array
     */
    
var $Results_ = array();
    
    
/**
     * Creates connection to database
     *
     * @param String $Server
     * @param String $Name
     * @param String $User
     * @param String $Password
     * @return DATABASE
     */
    
function MYSQL_DATABASE($Server 'localhost'$Name 'root'$User 'sa'$Password)
    {
        
// Must call for destructor to work.
        
parent::DESTRUCTOR();
        
        
$this->DataBase_ mysql_connect($Server$User$Password);
        if (!
mysql_select_db($Name$this->DataBase_))
            die(
mysql_error());
    }
    
    
/**
     * Executes query and builds array of repsonse.
     *
     * @param String $SQL
     * @param Int $Results
     */
    
function Query($SQL$Results MYSQL_ASSOC)
    {
        
// Clear out old array before populating new results.
        
$this->Query_ null;
        
$this->Query_ mysql_query($SQL);
        
$this->GetResults_($Results);
        
mysql_free_result($this->Query_);
    }
    
    
/**
     * Retrieves a single result record from the MySQL response.
     *
     * @param Int $Results
     * @return Array
     */
    
function GetResult($Results null)
    {
        return 
mysql_fetch_array($this->Query_$Results);
    }
    
    
/**
     * Builds an array of all rows from the MySQL response.
     *
     * @param unknown_type $Results
     */
    
function GetResults_($Results null)
    {
        if (!
$this->Query_)
            die (
mysql_error());
        
        while (
$ThisRow $this->GetResult($Results))
            
$this->Results_[] = $ThisRow;
    }
    
    
/**
     * Returns an entire record based on array index.
     *
     * @param Int $Index
     * @return Object
     */
    
function GetRecord($Index)
    {
        return new 
DATABASE_RECORD($Index$this);
    }
    
    
/**
     * Retrives a value specified by array index and associative key.
     *
     * @param Int $Index
     * @param String $Key
     * @param String $Default
     * @return String
     */
    
function GetField($Index$Key$Default null)
    {
        if (!empty(
$this->Results_[$Index][$Key]))
            return 
trim($this->Results_[$Index][$Key]);
        elseif (!empty(
$this->Results_[0][$Key]))
            return 
trim($this->Results_[0][$Key]);
        else
            return 
$Default;
    }
    
    
/**
     * Close MySQL data connection.
     *
     */
    
function __destructor()
    {
        
mysql_close($this->DataBase_);
        echo 
'HEY!';
    }
}

/**
 * Retrieves entire row from DATABASE
 *
 */
class DATABASE_RECORD
{
    var 
$Index_;
    var 
$Data_;
    
    
/**
     * Assigns DATABASE reference to current object.
     *
     * @param Int $Index
     * @param Object $Data
     * @return DATABASE_RECORD
     */
    
function DATABASE_RECORD($Index, &$Data)
    {
        
$this->Index_ $Index;
        
$this->Data_ $Data;
    }
    
    
/**
     * Retrives a single field by key.
     *
     * @param String $Key
     * @param String $Default
     * @return String
     */
    
function GetField($Key$Default null)
    {
        return 
$this->Data_->GetField($this->Index_$Key$Default);
    }
}

$DataBase = new MQSL_DATABASE(DB_SERVERDB_NAMEDB_USERDB_PASSWORD);
?>