Login   Register  
PHP Classes
elePHPant
Icontem

File: sql.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Mikhail D  >  Easy Image DB Management  >  sql.php  >  Download  
File: sql.php
Role: Class source
Content type: text/plain
Description: MySQL database management script used by the Image class if necesery, see reame file.
Class: Easy Image DB Management
Manage images stored in files or MySQL database
Author: By
Last change: .
Date: 5 years ago
Size: 4,012 bytes
 

Contents

Class file image Download
<?php
//******************************************************************************************************
//    Name: sql.php
//    Revision: 2.0
//    Date: May 22, 2009
//    Link: http://doc776.org
//    Developer: Mikhail Davtian - originaly written by Joe
//    Description: MySQL database ease-of-use class.
//******************************************************************************************************

class SQL
{
  protected 
$host 'localhost';
    protected 
$user 'username';
    protected 
$pass 'password';
    protected 
$db 'table';
    private 
$qr;
    
    
//connect to mysql database
    
function SQL()
    {
        
//connect or die trying
        
$this->conn = @mysql_connect($this->host$this->user$this->pass)
            OR die(
'<h1>cannot connect to MYSQL Database</h1><p>Contact <a href="mailto:jrgpmaster@gmail.com">jrgp</a> to hopefully get this fixed soon</p>');
        
        
//select database or die after trying
        
@mysql_select_db($this->db,$this->conn)
            OR die(
'cannot select database');
        
        
//set current number of queries to 0
        
$this->num_queries 0;
    }
    
    function 
query($q$care 1$buffered 0)
    {
        
//check if connected
        
if(!$this->conn)
            return 
false;
        
        
//check if the placeholder is currently being used, if it is, unset it.
        
if($this->qr != NULL)
            unset(
$this->qr);
        
        
//buffered query?
        
if(empty($buffered))
            
$this->qr = @mysql_query(trim($q),$this->conn) or $this->query_error($care$q);
        else
            
$this->qr = @mysql_unbuffered_query(trim($q),$this->conn) or $this->query_error($care$q);
        
        
//increase number of queries
        
$this->num_queries++;
        
        
//if not dead, return result
        
return $this->qr;
    }

    
//query error handler
    
function query_error($care$q)
    {
        
//we don't care if it failed
        
if (empty($care))
            return 
true;
        
        
//we do, send out message and stop script
        
        //take away anything that was to be send out before this error
        
do ob_end_clean();
        while (
ob_get_level() !== 0);
        
        
//echo the error message
        
echo '<h1>Mysql Error</h1>';
        echo 
'<p>Contact Admin asap to get this fixed.</p>';
        echo 
'<h2>Error:</h2>';
        echo 
'<pre><code>'.mysql_error($this->conn).'</code></pre>';
        echo 
'<h2>Query:</h2>';
        echo 
'<pre><code>'.$q.'</code></pre>';
        
        
//close connection to mysql database
        
$this->close();
        
        
//prevent script from continuing
        
exit;
    }

    
//gets associative, or number array or an object or full result in associative array from a mysql dataset
    
function data($q$t null)
    {
        if (
$t == 1)
            return 
mysql_fetch_row($q);
            elseif (
$t == 2)
            return 
mysql_fetch_object($q);
            elseif (
$t == 3) {
            while(
$r mysql_fetch_assoc($q))
            
$ar[] = $r;
            return 
$ar;
        }
        else
            return 
mysql_fetch_assoc($q);
    }
    
    
//gets number of rows found from a query
    
function num($q)
    {
        return 
mysql_num_rows($q);
    }
    
    
//gets the id of last insert
    
function lastid()
    {
        return 
mysql_insert_id($this->conn);
    }
    
    
//adds slashes to string to protect against sql injection attempts
    
function prot($str)
    {
        
//if the string in question just contains digits, no other characters, such as quotes or letters, don't do anything to it, otherwise, escape it
        
return @ctype_digit($str) ? $str mysql_real_escape_string($str,$this->conn);
    }
    
    
//free memory used by a query
    
function free($q)
    {
        
mysql_free_result($q);
    }
    
    function 
freelast()
    {
        if (!empty(
$this->qr))
            
mysql_free_result($this->qr);
    }
    
    
//return the number if affected rows in the last UPDATE
    
function aff()
    {
        return 
mysql_affected_rows($this->conn);
    }
    
    
//close connection to database
    
function close()
    {
        
//check if already closed
        
if (!$this->conn)
            return 
true;
            
        
//close it
        
mysql_close($this->conn);
        
        
//set that it is closed
        
$this->conn FALSE;
        
        
//unset variable
        
unset($this->qr);
    }
    
    
//auto connection close
    /*function __destruct()
    {
        if ($this->conn)
            $this->close();
    }*/
}
?>