Location: PHPKode > projects > EZphotopress > ezphotopress-1.0.0/class/mysql.class.php
<?php
/**
* MySQL Database Connection Class
* @access public
* @package SPLIB
*/
class MySQL {
    /**
    * MySQL server hostname
    * @access private
    * @var string
    */
    var $host;

    /**
    * MySQL username
    * @access private
    * @var string
    */
    var $dbUser;

    /**
    * MySQL user's password
    * @access private
    * @var string
    */
    var $dbPass;

    /**
    * Name of database to use
    * @access private
    * @var string
    */
    var $dbName;

    /**
    * MySQL Resource link identifier stored here
    * @access private
    * @var string
    */
    var $dbConn;

    /**
    * Stores error messages for connection errors
    * @access private
    * @var string
    */
    var $connectError;
    
    /* table prefix */
    /* @access private */
    var $tabprefix;

    /**
    * MySQL constructor
    * @param string host (MySQL server hostname)
    * @param string dbUser (MySQL User Name)
    * @param string dbPass (MySQL User Password)
    * @param string dbName (Database to select)
    * @param String tabprefix the prefix of the tables
    * @access public
    */
    function MySQL ($host,$dbUser,$dbPass,$dbName,$tabprefix) {
        $this->host=$host;
        $this->dbUser=$dbUser;
        $this->dbPass=$dbPass;
        $this->dbName=$dbName;
        $this->connectToDb();
        $this->tabprefix=$tabprefix;
    }

    /**
    * Establishes connection to MySQL and selects a database
    * @return void
    * @access private
    */
    function connectToDb () {
        // Make connection to MySQL server
        if (!$this->dbConn = @mysql_connect($this->host,
                                      $this->dbUser,
                                      $this->dbPass)) {
            //trigger_error('Could not connect to server pippo');
            $this->connectError=true;
        // Select database
        } else if ( !@mysql_select_db($this->dbName,$this->dbConn) ) {
            //trigger_error('Could not select database');
            $this->connectError=true;
        }
    }

    /**
    * Checks for MySQL errors
    * @return boolean
    * @access public
    */
    function isError () {
        if ( $this->connectError )
            return true;
        $error=mysql_error ($this->dbConn);
        if ( empty ($error) )
            return false;
        else
            return true;
    }

    /**
    * Returns an instance of MySQLResult to fetch rows with
    * @param $sql string the database query to run
    * @return MySQLResult
    * @access public
    */
    function query($sql) {
        if (!$queryResource=mysql_query($sql,$this->dbConn)) {
            trigger_error ('Query failed: '.mysql_error($this->dbConn).' <br>SQL: '.$sql);
		}
        return new MySQLResult($this,$queryResource);
    }


    /**
    * Returns the tables in the database
    * @return list of tables
    * ”@access pubblic
    */
    function listTable() {
	return mysql_list_tables($this->dbName,$this->dbConn);
    }
    
     /**
    * mysql_real_escape_string funcion
    */
    function realEscapeString($value) {
    	return  mysql_real_escape_string($value);	
    }
   
	/**
     * function to update values for settings table
     * Enter description here ...
     * @param String $name
     * @param String $value
     * @return empty string if all is ok else a message
     */
    function updateSettings($name,$value) {
    	try {
	    	$sql = "update ".$this->tabprefix."settings set setting_value='".addslashes($value)."',last_modify=NOW() where setting_name='".$name."'";
	    	$result = $this->query($sql);
	    	    	
	    	if ($result->sizeIDU() > 0) {
	    		return $name.SETTINGS_UPDATE_MESSAGE_OK;
	    	} else {
	    		return $name.SETTINGS_UPDATE_MESSAGE_ERROR;
	    	}
    	} catch (Exception $e) {
    		return $e->getMessage();
    	}
    }
}

/**
* MySQLResult Data Fetching Class
* @access public
* @package SPLIB
*/
class MySQLResult {
    /**
    * Instance of MySQL providing database connection
    * @access private
    * @var MySQL
    */
    var $mysql;

    /**
    * Query resource
    * @access private
    * @var resource
    */
    var $query;

    /**
    * MySQLResult constructor
    * @param object mysql   (instance of MySQL class)
    * @param resource query (MySQL query resource)
    * @access public
    */
    function MySQLResult(& $mysql,$query) {
        $this->mysql=& $mysql;
        $this->query=$query;
    }

    /**
    * Fetches a row from the result
    * @return array
    * @access public
    */
    function fetch () {
        if ( $row=mysql_fetch_array($this->query,MYSQL_ASSOC) ) {
            return $row;
        } else if ( $this->size() > 0 ) {
            mysql_data_seek($this->query,0);
            return false;
        } else {
            return false;
        }
    }

    /**
    * Returns the number of rows selected
    * @return int
    * @access public
    */
    function size () {
        return mysql_num_rows($this->query);
    }

    /**
    * Return the number of rows updated/inserted/deleted
    * @return int
    * @access public
    */
    function sizeIDU() {
		return mysql_affected_rows($this->mysql->dbConn);
    }
    
    /**
    * Returns the ID of the last row inserted
    * @return int
    * @access public
    */
    function insertID () {
        return mysql_insert_id($this->mysql->dbConn);
    }
    
    /**
    * Checks for MySQL errors
    * @return boolean
    * @access public
    */
    function isError () {
        return $this->mysql->isError();
    }
    
   
}
?>
Return current item: EZphotopress