<?php
 
/**
 
 * mySQL class
 
 *
 
 * @package db
 
 * @subpackage mysql
 
 *
 
 */
 
    class DB {
 
        private $db;
 
        private $host;
 
        private $user;
 
        private $pass;
 
        
 
        private $con;
 
        private $database;
 
        private $res;
 
        private $row;
 
        /**
 
         * Number of current row
 
         *
 
         * @var int
 
         */
 
        private $rowN = -1;
 
 
        /**
 
         * Connect to database
 
         *
 
         * @param resource link[optional] con
 
         * @param string[optional] host
 
         * @param string[optional] db
 
         * @param string[optional] user
 
         * @param string[optional] pass
 
         * @return DB
 
         */
 
        public function DB($con=NULL, $host=DBHOST, $db=DBDB, $user=DBUSER, $pass=DBPASS) {
 
            if (!$con) {
 
                $this->con = mysql_connect($host, $user, $pass);
 
                $this->database = $this->selectDB($db);
 
                if (!$this->database) {
 
                    $this->__destruct();
 
                }
 
            }
 
            else {
 
                $this->con = $con;
 
            }
 
        }
 
        
 
        /**
 
         * Select the database
 
         *
 
         * @param String database
 
         * @return boolean
 
         */
 
        public function selectDB($database) {
 
            return mysql_selectdb($database, $this->con);
 
        }
 
        
 
        /**
 
         * Execute a query
 
         *
 
         * @param string sql
 
         * @param boolean[optional] insert
 
         * @return Resource/Last_id
 
         */
 
        public function query($sql, $insert=false) {
 
            $this->rowN = -1;
 
            $this->res = mysql_query($sql, $this->con);
 
            if ($insert)
 
                return mysql_insert_id($this->con);
 
            return $this->res;
 
        }
 
        
 
        /**
 
         * Get connection resource
 
         *
 
         * @return link resource
 
         */
 
        public function getCon() {
 
            return $this->con;
 
        }
 
        
 
        /**
 
         * Gets a row
 
         *
 
         * @return array
 
         */
 
        public function getRow() {
 
            ++$this->rowN;
 
            $this->row = mysql_fetch_array($this->res);
 
            return $this->row;
 
        }
 
        
 
        /**
 
         * Gets a row in object format
 
         *
 
         * @param class class
 
         * @param array[optional] params
 
         * @return new object
 
         */
 
        public function getRowAsObj($class, $params=NULL) {
 
            ++$this->rowN;
 
            $this->row = mysql_fetch_object($this->res, $class, $params);
 
            return $this->row;
 
        }
 
        
 
        /**
 
         * Gets a row ASSOC
 
         *
 
         * @return array
 
         */
 
        public function getRowAssoc() {
 
            ++$this->rowN;
 
            $this->row = mysql_fetch_assoc($this->res);
 
            return $this->row;
 
        }
 
        
 
        /**
 
         * Get data from field
 
         *
 
         * @param string field
 
         * @return string
 
         */
 
        public function getField($field) {
 
            return $this->row[$field];
 
        }
 
        
 
        /**
 
         * Gets a result from a field in row
 
         *
 
         * @param string[optional] field
 
         * @param int[optional] row
 
         * @return string
 
         */
 
        public function getResult($field="", $row=0) {
 
            if ($field != "")
 
                return mysql_result($this->res, $row, $field);
 
            else return mysql_result($this->res, $row);
 
        }
 
 
        /**
 
         * Return the name of idfield
 
         *
 
         * @return string
 
         */
 
        public function getIdFieldName($table) {
 
            $this->query("SHOW COLUMNS FROM $table");
 
            return mysql_fieldname($this->res, 0);
 
        }
 
 
        /**
 
         * Return the name of a field
 
         *
 
         * @param string table
 
         * @param int fieldIndex
 
         * @return string
 
         */
 
        public function getFieldName($table, $fieldIndex) {
 
            $this->query("SHOW COLUMNS FROM $table");
 
            return mysql_fieldname($this->res, $fieldIndex);
 
        }
 
        
 
        /**
 
         * Return the name of idfield
 
         *
 
         * @param string table
 
         * @return array
 
         */
 
        public function getFieldNameList($table) {
 
            $this->query("SHOW COLUMNS FROM $table");
 
            $fields = array();
 
            $i = 0;
 
            while (($field = $this->getRowAssoc())) {
 
                foreach ($field as $type => $value) {
 
                    $fields[$i][strtolower($type)] = $value;
 
                }
 
                ++$i;
 
            }
 
            return $fields;
 
        }
 
        
 
        /**
 
         * Get the number of fields of a table
 
         *
 
         * @param string table
 
         * @return int
 
         */
 
        public function getNumFields($table) {
 
            $this->query("SHOW COLUMNS FROM $table");
 
            $i = 0;
 
            while ($this->getRowAssoc())
 
                ++$i;
 
            return $i;
 
        }
 
        
 
        /**
 
         * Get insert id
 
         *
 
         * @return mysql_insert_id
 
         */
 
        public function getInsertId() {
 
            return mysql_insert_id($this->con);
 
        }
 
        
 
        /**
 
         * Get max id
 
         *
 
         * @return last_id
 
         */
 
        public function getMaxId($table) {
 
            $idName = $this->getIdFieldName($table);
 
            $sql = "SELECT MAX($idName) FROM $table";
 
            $this->query($sql);
 
            return $this->getResult();
 
        }
 
        
 
        /**
 
         * Jumps to the next row
 
         *
 
         */
 
        public function seekForward() {
 
            if (mysql_data_seek($this->res, $this->rowN+1))
 
                ++$this->rowN;
 
        }
 
        
 
        /**
 
         * Jumps to the row
 
         *
 
         * @param int row
 
         */
 
        public function seek($row) {
 
            if (mysql_data_seek($this->res, $row))
 
                $this->rowN = $row;
 
        }
 
 
        /**
 
         * Jumps to the previous row
 
         *
 
         */
 
        public function seekBackward() {
 
            if (mysql_data_seek($this->res, $this->rowN-1))
 
                --$this->rowN;
 
        }
 
 
        /**
 
         * Return n# of affected rows
 
         *
 
         * @return int
 
         */
 
        public function getAffectedRows() {
 
            return mysql_affected_rows($this->con);
 
        }
 
            
 
        /**
 
         * Close the connection
 
         *
 
         */
 
        public function __destruct() {
 
            @mysql_free_result($this->res);
 
            @mysql_close($this->con);
 
        }
 
        
 
    }
 
 
?> 
 
 
 |