自制php操作mysql工具類(DB.class.php)


DB.class.php

<?php

class DB{
    //主機地址
    var $host;
    //用戶名
    var $username;
    //密碼
    var $password;
    //數據庫名
    var $dbname;
    //字符集
    var $charset;
    //數據庫連接對象,主要用在mysql_query($sql,$this->con);
    private $con;
    //外界獲取的mysqlDB類操作對象
    public static $dao;
    //獲得mysqlDB類對象(單例)
    public static function getInstance($config){
        if(!isset(self::$dao)){
            self::$dao = new self($config);
        }
        return self::$dao;
    } 
    //private禁止外部new,減少new帶來的開銷,並設置默認的配置。
    private function __construct($config){
        $this->host = isset($config['host'])?$config['host']:'localhost';
        $this->port = isset($config['port'])?$config['port']:'3306';
        $this->username = isset($config['username'])?$config['username']:'root';
        $this->password = isset($config['password'])?$config['password']:'root';
        $this->dbname = isset($config['dbname'])?$config['dbname']:'test';
        $this->charset = isset($config['charset'])?$config['charset']:'utf8';
        //連接數據庫
        $this->con = $this->connect();
        //設置數據庫名,默認為test
        $this->useDb($this->dbname);
        //設置字符集,默認為utf8。 
        $this->setCharset($this->charset);

    }
    //禁止外部克隆
    private function __clone(){

    }
    //連接不成功在這個分段找。
    //////////////////////////////////////////////////////
    //連接數據庫
    public function connect(){
         $con = 
        mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("連接數據庫失敗");
        return $con;
    }
    //1.執行增、刪、改sql語句 
    public function exec($sql){
        $res = mysql_query($sql,$this->con);
        if($res){
             // echo "<br/>sql語句:".$sql."<br>";
             // var_dump($res);
             return true;
             
            //要是增刪改有問題可以在這里輸出sql調試。
        }else{
            echo "<br/>sql語句:".$sql;
            echo "<br/出錯信息>:".mysql_error();
            echo "<br/出錯代碼>:".mysql_errno();
            exit;
        }
    }
    //額外設置字符集
    public function setCharset($charset){
        $sql = "set names '$charset'";
        $this->exec($sql) or die("set");
        //die();
    }
    //額外設置數據庫
    public function useDb($dbname){
        $sql = "use $dbname";
        $this->exec($sql) or die("use");//or die()函數前面需返回對應的true或false;
    }
    ////////////////////////////////////////////////////////
    //查找出錯在這個部分找。
    //4.將查到的結果集轉為單個數據,這里是索引數組的第一個字段。
    public function getOne($sql){
        $rec = mysql_query($sql,$this->con);
        $res = mysql_fetch_row($rec);
        if($res){
            return $res[0];
        }else{
            return false;
        }
    }
    //可能修改的函數全部放在上面,以便查找。下方函數基本不會修改。
    //編號1~4是高頻率使用的函數。
    //2.獲取一行數據(一維)
    public function getRow($sql){
        $rec = mysql_query($sql,$this->con);
        $res = mysql_fetch_assoc($rec);
        if($res){
            return $res;
        }else{
            return false;
        }
    }
    //3.獲取所有數據(二維)
    public function getAll($sql){
        $rec = mysql_query($sql,$this->con);
        $arr = array();//定義 一個數組
        while($res = mysql_fetch_assoc($rec)){
            $arr[] = $res;
        }
        if($arr){
            return $arr;
        }else{
            return false;
        }
    }

}

$dao = DB::getInstance(null);
?>




<?php

include_once("DB.class.php");

$sql = "select * from goods where id = 1";

//.獲取一行數據(一維)

$res = $dao->getRow($sql); var_dump($res);

//以上的getRow函數只是舉例,具體如何使用這個工具,首先要在你的php文件中include這個工具類,即include_once("DB.class.php");

//1.要看你的sql語句查回的數據是一維的,還是二維的,或者單個數據。
//對應的函數是getROW,getAll,getOne。
//2.增刪改統一用exec。
//3.數據庫的連接配置在構造構造函數中修改。


 ?>

 注意事項:
1.文件DB.class.php建好后。
2.在你需要操作數據庫接的文件中include這個文件,上面有示例。
3.使用之前必須把數據庫名改成你的數據庫名。這個是最重要的,也是最容易忘記的。

引用

<?php

include_once("DB.class.php");

$sql = "select * from goods where id = 1";

//.獲取一行數據(一維)

$res = $dao->getRow($sql); var_dump($res);

//以上的getRow函數只是舉例,具體如何使用這個工具,首先要在你的php文件中include這個工具類,即include_once("DB.class.php");

//1.要看你的sql語句查回的數據是一維的,還是二維的,或者單個數據。
//對應的函數是getROW,getAll,getOne。
//2.增刪改統一用exec。
//3.數據庫的連接配置在構造構造函數中修改。


 ?>

 注意事項:

1.文件DB.class.php建好后。

2.在你需要操作數據庫接的文件中include這個文件,上面有示例。

3.使用之前必須把數據庫名改成你的數據庫名。這個是最重要的,也是最容易忘記的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM