<?php
$db 
= New DB_MySQL;

// DB Details:
$db->database 'adsystem';
$db->user 'sa';
$db->password 'sa';
$db->server 'localhost';

// Connect to db
$db->connect();

//////////////////////////////////////////////////////////////////////

function ss($str) {
    return 
mysql_escape_string($str);
}

// Mysql Database Class
class DB_MySQL {
  var 
$database "";

  var 
$link_id  0;
  var 
$query_id 0;
  var 
$record   = array();

  var 
$server "";
  var 
$user "";
  var 
$password "";

  function 
connect() {
    global 
$usepconnect;
    
// connect to db server

    
if ( == $this->link_id ) {
      if (
$this->password=="") {
        if (
$usepconnect==1) {
          
$this->link_id=mysql_pconnect($this->server,$this->user);
        } else {
          
$this->link_id=mysql_connect($this->server,$this->user);
        }
      } else {
        if (
$usepconnect==1) {
          
$this->link_id=mysql_pconnect($this->server,$this->user,$this->password);
        } else {
          
$this->link_id=mysql_connect($this->server,$this->user,$this->password);
        }
      }
      if (!
$this->link_id) {
        
$this->halt("Link-ID == false, connect failed");
      }
      if (
$this->database!="") {
        if(!
mysql_select_db($this->database$this->link_id)) {
          
$this->halt("cannot use database ".$this->database);
        }
      }
    }
  }

  function 
geterrdesc() {
    
$this->error=mysql_error();
    return 
$this->error;
  }

  function 
geterrno() {
    
$this->errno=mysql_errno();
    return 
$this->errno;
  }

  function 
select_db($database="") {
    
// select database
    
if ($database!="") {
      
$this->database=$database;
    }

    if(!
mysql_select_db($this->database$this->link_id)) {
      
$this->halt("cannot use database ".$this->database);
    }

  }

  function 
query($query_string) {
    global 
$query_count,$showqueries,$explain,$querytime;
    
// do query

    
if ($showqueries) {
      echo 
"Query: $query_string\n";

      global 
$pagestarttime;
      
$pageendtime=microtime();
      
$starttime=explode(" ",$pagestarttime);
      
$endtime=explode(" ",$pageendtime);

      
$beforetime=$endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];

      echo 
"Time before: $beforetime\n";
    }

    
$this->query_id mysql_query($query_string,$this->link_id);
    if (!
$this->query_id) {
      
$this->halt("Invalid SQL: ".$query_string);
    }

    
$query_count++;

    if (
$showqueries) {
      
$pageendtime=microtime();
      
$starttime=explode(" ",$pagestarttime);
      
$endtime=explode(" ",$pageendtime);

      
$aftertime=$endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];
      
$querytime+=$aftertime-$beforetime;

      echo 
"Time after:  $aftertime\n";

      if (
$explain and substr(trim(strtoupper($query_string)),0,6)=="SELECT") {
        
$explain_id mysql_query("EXPLAIN $query_string",$this->link_id);
        echo 
"</pre>\n";
        echo 
"
        <table width=100% border=1 cellpadding=2 cellspacing=1>
        <tr>
          <td><b>table</b></td>
          <td><b>type</b></td>
          <td><b>possible_keys</b></td>
          <td><b>key</b></td>
          <td><b>key_len</b></td>
          <td><b>ref</b></td>
          <td><b>rows</b></td>
          <td><b>Extra</b></td>
        </tr>\n"
;
        while(
$array=mysql_fetch_array($explain_id)) {
          echo 
"
          <tr>
            <td>$array[table]&nbsp;</td>
            <td>$array[type]&nbsp;</td>
            <td>$array[possible_keys]&nbsp;</td>
            <td>$array[key]&nbsp;</td>
            <td>$array[key_len]&nbsp;</td>
            <td>$array[ref]&nbsp;</td>
            <td>$array[rows]&nbsp;</td>
            <td>$array[Extra]&nbsp;</td>
          </tr>\n"
;
        }
        echo 
"</table>\n<BR><hr>\n";
        echo 
"\n<pre>";
      } else {
        echo 
"\n<hr>\n\n";
      }
    }

    return 
$this->query_id;
  }

  function 
fetch_array($query_id=-1,$query_string="") {
    
// retrieve row
    
if ($query_id!=-1) {
      
$this->query_id=$query_id;
    }
    if ( isset(
$this->query_id) ) {
      
$this->record mysql_fetch_array($this->query_id);
    } else {
      if ( !empty(
$query_string) ) {
        
$this->halt("Invalid query id (".$this->query_id.") on this query: $query_string");
      } else {
        
$this->halt("Invalid query id ".$this->query_id." specified");
      }
    }

    return 
$this->record;
  }

  function 
free_result($query_id=-1) {
    
// retrieve row
    
if ($query_id!=-1) {
      
$this->query_id=$query_id;
    }
    return @
mysql_free_result($this->query_id);
  }

  function 
query_first($query_string) {
    
// does a query and returns first row
    
$query_id $this->query($query_string);
    
$returnarray=$this->fetch_array($query_id$query_string);
    
$this->free_result($query_id);
    return 
$returnarray;
  }

  function 
data_seek($pos,$query_id=-1) {
    
// goes to row $pos
    
if ($query_id!=-1) {
      
$this->query_id=$query_id;
    }
    return 
mysql_data_seek($this->query_id$pos);
  }

  function 
num_rows($query_id=-1) {
    
// returns number of rows in query
    
if ($query_id!=-1) {
      
$this->query_id=$query_id;
    }
    return 
mysql_num_rows($this->query_id);
  }

  function 
num_fields($query_id=-1) {
    
// returns number of fields in query
    
if ($query_id!=-1) {
      
$this->query_id=$query_id;
    }
    return 
mysql_num_fields($this->query_id);
  }

    function 
sql_query($query) {
        
$result $this->query($query);
        
$return_array = array();

        while (
$row $this->fetch_array($result)) {
            
array_push($return_array$row);
        }

        
$this->free_result($result);

        return 
$return_array
    }

    function 
halt($msg) { die($msg); }
    function 
insert_id() { return mysql_insert_id($this->link_id); }
    function 
close() { return mysql_close(); }
}
?>