PHP的SqlHelp

<?php
/* 
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
* Description of db
* 数据库查询类
*/
//defined('SGM') or die('Error 404: page not find!');
class Mysql {
        private $pre       = '',
                            $sql       = '';
        private $link      = null,
                $q         = null;
        private $rows      = 0;
        private $begintime = 0;
        private $alltime   = array();
        public static $charset = "utf8";
        /**
         * @var    DB
         * @static
         * @access private
         */
        private static $self = null;
        private $times = 0;
        public function Mysql ($host, $user, $pwd, $db, $pre = '') {
                $this->pre = $pre;
                $this->connect($host, $user, $pwd, $db);
                Mysql::$self =  $this;
        }
        
        /**
         * @param string $host
         * @param string $host
         * @param string $pwd
         * @param string $db
         * @param string $pre
         * @return DB
         */
        public static function init($host='', $user='', $pwd='', $db='', $pre = '') {
                if(!(Mysql::$self instanceof DB)){
                          Mysql::$self = new Mysql($host, $user, $pwd, $db, $pre);
                }
                return Mysql::$self;
        }
        /**
         * 创建连接
         */
        private function connect($host, $user, $pwd, $db, $pre = '') {
                $this->pre = $pre;
                if(! $this->link = mysql_connect($host, $user, $pwd)) die(
                        'Connection to mysql server could not be established.');
                if(! mysql_select_db($db, $this->link)) die(
                        'Database could not be selected.');
        }
        /**
         * 执行sql
         * @param  string $sql
         * @return Mysql 
         */
        public function query($sql) {
                $this->times ++;
                $this->begintime = microtime();
                mysql_query('SET NAMES '.self::$charset, $this->link);
                $this->sql = $sql;
                $this->q = mysql_query($sql, $this->link);
                $this->alltime[] = array('t' => microtime() - $this->begintime,
                        's' => $sql);
                return $this;
        }

        /**
         * 获取单个查询值
         * @param  string $sql
         * @return mixed
         */
        public function getOne($sql = '') {
                if(strlen(trim($sql)) > 0){
                        $this->query($sql);
                }
                if($this->check()){
                        $result = mysql_fetch_array($this->q, MYSQL_NUM);
                        mysql_free_result($this->q);
                        return $result[0];
                }
                return false;
        }
        /**
         * 获取一条记录
         * @param  string $sql
         * @return array
         */
        public function getRow($sql = '') {
                if(strlen(trim($sql)) > 0){
                        $this->query($sql);
                }
                if($this->check()){
                        $result = mysql_fetch_assoc($this->q);
                        mysql_free_result($this->q);
                        return $result;
                }else{
                        return array();
                }

        }
        /**
         * 获取所有查询
         * @param  string $sql
         * @return array
         */
        public function getAll($sql = '') {
                if(strlen(trim($sql)) > 0){
                        $this->query($sql);
                }
                $return = array();
                if($this->check()){
                        while($temp = mysql_fetch_assoc($this->q))
                                $return[] = $temp;
                        $this->rows = mysql_num_rows($this->q);
                        mysql_free_result($this->q);
                        return $return;
                }else{
                        return array();
                }
        }
        /**
         * 获取插入ID
         * @return int
         */
        public function InsertId($seq=0) {
                return mysql_insert_id($this->link);
        }

        /**
         * 获取影响行数
         * @return  int
         */
        public function rowNummber() {
                return $this->rows;
        }
        /**
         * 检查查询是否成功
         * @return bool
         */
        public function check() {
                return $this->q === false ? false : true;
        }
        
        /**
         * 获得连接
         * @return resource
         */
        public function getLink() {
                return $this->link;
        }
        /**
         * 获得本次连接的查询语句
         * @return string
         */
        public function getSQL() {
                return $this->sql;
        }

        /**
         * 获得类名
         * @return string
         */
        public function __toString() {
                return __CLASS__;
        }

        /**
         * 获得执行时间
         * @return float
         */
        public function getTimeInfo() {
                return $this->alltime;
        }

        /**
         * 获得执行次数
         * @return Int
         */
        public function getTimes() {
                return $this->times;
        }

        /**
         * 获得结果行数
         * @return Int
         */
        public function getResultRows() {
                $rows = mysql_num_rows($this->q);
                mysql_free_result($this->q);
                return $rows;
        }

        /**
         * $Id: Mysql.php 685 2009-12-03 10:49:04Z HH.Sun $
         * 获得最后执行语句的错误
         * @desc         getLastError
         * @access       public
         * @return        string
         * @version      $Revision: 685 $
         */
        public function getLastError(){
                return mysql_error($this->link);
        }

        /**
         * $Id: Mysql.php 685 2009-12-03 10:49:04Z HH.Sun $
         * mysql_real_escape_string 调用
         * @desc          escape
         * @access      public
         * @param       string $sql
         * @return       string
         *
         * @since         2009-9-25 下午02:06:41
         * @version     $Revision: 685 $
         */
        public function escape($sql){
                return mysql_real_escape_string($sql,$this->link);
        }
}
?>

 

 

初始化:

<?PHP 
//如果是多个文件global下好了
global $db;
$db = new Mysql(...............................);
$sql = "................................................";
$one = $db->getOne($sql);
$line  = $db->getRow($sql);
$all    = $db->getAll($sql);
//其他文件
global $db;
$sql = "................................................";
$one = $db->getOne($sql);
$line  = $db->getRow($sql);
$all    = $db->getAll($sql);
?>

 

posted @ 2012-08-05 14:32  高级园长  阅读(264)  评论(0)    收藏  举报