Login   Register  
PHP Classes
elePHPant
Icontem

File: mysql.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Klesti Hoxha  >  k-mysql  >  mysql.class.php  >  Download  
File: mysql.class.php
Role: Class source
Content type: text/plain
Description: the k-mysql class
Class: k-mysql
MySQL database access wrapper
Author: By
Last change: The time of execution of every single query is being stored now in class variables.
Date: 7 years ago
Size: 2,970 bytes
 

Contents

Class file image Download
<?
/*-------------------------------------------------------------------------

  Class: Mysql
  Description : Routine functions in comunication with a mysql database
  Author: Klesti Hoxha - klesti@gmail.com
  Date: 25 may 2005 , Last change 4 May 2007

---------------------------------------------------------------------------*/  

class mysql   {
    
    var 
$host//Host
    
var $uname//username
    
var $pwd//password
    
var $dbname//Database name
    
var $mysql_link//Connection link
    
var $nrquery//Number of performed queris
    
var $total_time//Total time for the exeqution of queries
    
var $last_query_time//Time for the exequtioin of the last query
    
var $qlist//an array containg all the queries executed by the object
    
var $affected//number of affected rows
    
var $last_id//THe last ID generated from an auto_increment INSERT QUERY
    
/* Constructor : create connection with DB */
    
function mysql($host,$uname,$pwd="",$dbname) {
        
$this->host $host;
        
$this->uname $uname;
        
$this->pwd $pwd;
        
$this->dbname $dbname;
        if (!
$this->mysql_link = @mysql_connect($this->host,$this->uname,$this->pwd)) die("Error : Could not connect to database!");
        
mysql_select_db($this->dbname,$this->mysql_link);
        
$this->total_time 0;
        
$this->last_query_time 0;
    }
/* This function returns an array with all the results of a SELECT query */    
    
function results($sql,$type=MYSQL_ASSOC) {
        
$start $this->getmicrotime();
        
$r mysql_query($sql,$this->mysql_link);
        
$end $this->getmicrotime();
        
$query['sql'] = $sql;
        if (
$r) {
            
$this->last_query_time $end $start;
            
$this->total_time += $this->last_query_time;
            
$this->nrquery += 1;
            
$query['time'] = $this->last_query_time;
            
$this->qlist[] = $query;
            
$nr mysql_num_rows($r);
            if (
$nr == 0) return 0//return 0 if no results
            
else {
                
$nr 0;
                while (
$row mysql_fetch_array($r,$type)) {
                    
reset($row);
                    while (list(
$key$val) = each($row)) {
                        
$ret[$nr][$key] = $val
                    }
                    
$nr++;
                }
                return 
$ret;
            }
        } else return 
false;
    }

/* executes a query and return false on failure */    
    
function query($sql) {
        
$start $this->getmicrotime();
        
$q = @mysql_query($sql,$this->mysql_link);
        
$end $this->getmicrotime();
        
$query['sql'] = $sql;
        if (
$q) {
            
$this->nrquery += 1;
            
$this->last_query_time $end $start;
            
$this->total_time += $this->last_query_time;
            
$this->affected mysql_affected_rows($this->mysql_link);
            
$this->last_id mysql_insert_id($this->mysql_link);
            
$query['time'] = $this->last_query_time;
            
$this->qlist[] = $query;
            return 
true;
        }
        else return  
false;
    }
    
/* Close connection with database */
    
function close() {
        
mysql_close($this->mysql_link);
    }
    
/* return microtime */
    
function getmicrotime(){ 
        list(
$usec$sec) = explode(" ",microtime()); 
        return ((float)
$usec + (float)$sec); 
    } 

}

    
?>