PHP Classes

File: sql.php

Recommend this page to a friend!
  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: 14 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();
    }*/
}
?>