真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

開發(fā)自己的框架——(二)數(shù)據(jù)庫工具類的封裝

為了讓框架的內(nèi)容與數(shù)據(jù)分離,我們把常用的類封裝到一個工具類中,當(dāng)用到這些方法時,就調(diào)用這個封裝好的類,能夠使代碼的復(fù)用性得到很大的提高。
首先,封裝數(shù)據(jù)庫相關(guān)操作,為了使封裝規(guī)范化,我們創(chuàng)建一個接口讓數(shù)據(jù)庫實現(xiàn)接口中的方法,數(shù)據(jù)庫使用PDO擴展訪問數(shù)據(jù)。
數(shù)據(jù)庫接口類 
I_DAO.interface.php

專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)青云譜免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

數(shù)據(jù)庫工具類中,對象只能通過靜態(tài)方法創(chuàng)建一個實例(單例模式),不能通過克隆和繼承創(chuàng)建對象,數(shù)據(jù)庫的連接信息通過數(shù)組傳遞到方法中,工具類中有查詢所有數(shù)據(jù)方法、查詢一條數(shù)據(jù)方法、獲得一個字段值的方法、實現(xiàn)增刪改方法、
返回結(jié)果數(shù)量的方法等。
數(shù)據(jù)庫操作工具類
DAOPDO.class.php

服務(wù)器的配置
        $this -> initOptions($option);
        //初始化PDO對象
        $this -> initPDO();
    }
    //私有的克隆方法
    private function __clone()
    {
        
    }
    //公共的靜態(tài)方法實例化單例對象
    public static function getSingleton($options=array())
    {
        if(!self::$instance instanceof self){
            //實例化
            self::$instance = new self($options);
        }
        return self::$instance;
    }
    //初始化服務(wù)器的配置
    private function initOptions($option)
    {
        $this -> host = isset($option['host'])?$option['host']:'';
        $this -> dbname = isset($option['dbname'])?$option['dbname']:'';
        $this -> user = isset($option['user'])?$option['user']:'';
        $this -> pass = isset($option['pass'])?$option['pass']:'';
        $this -> port = isset($option['port'])?$option['port']:'';
        $this -> charset = isset($option['charset'])?$option['charset']:'';
    }
    //初始化PDO對象
    private function initPDO()
    {
        $dsn = 
        "MySQL:host=$this->host;dbname=$this->dbname;port=$this->port;charset=$this->charset";
        $this -> pdo = new PDO($dsn,$this->user,$this->pass);
    }
    //封裝pdostatement對象
    public function query($sql="")
    {    
        //返回pdo_statement對象
        return $this->pdo -> query($sql);
    }
    //查詢所有數(shù)據(jù)
    public function getAll($sql='')
    {
        $pdo_statement = $this->query($sql);
        $this->resultRows = $pdo_statement -> rowCount();
        if($pdo_statement==false){
            //輸出SQL語句的錯誤信息
            $error_info = $this->pdo-> errorInfo();
            $err_str = "SQL語句錯誤,具體信息如下:
".$error_info[2];             echo $err_str;             return false;         }         $result = $pdo_statement -> fetchAll(PDO::FETCH_ASSOC);         return $result;     }     //查詢一條記錄     public function getRow($sql='')     {         $pdo_statement = $this->query($sql);         if($pdo_statement==false){             //輸出SQL語句的錯誤信息             $error_info = $this->pdo-> errorInfo();             $err_str = "SQL語句錯誤,具體信息如下:
".$error_info[2];             echo $err_str;             return false;         }         $result = $pdo_statement -> fetch(PDO::FETCH_ASSOC);         return $result;     }     //獲得一個字段的值     public function getOne($sql='')     {         $pdo_statement = $this->query($sql);         if($pdo_statement==false){             //輸出SQL語句的錯誤信息             $error_info = $this->pdo-> errorInfo();             $err_str = "SQL語句錯誤,具體信息如下:
".$error_info[2];             echo $err_str;             return false;         }         //返回查詢的字段的值,我們在執(zhí)行sql語句之前就應(yīng)該明確查詢的是哪個字段,這樣fetchColumn就已經(jīng)知道查詢的字段值         $result = $pdo_statement -> fetchColumn();         return $result;     }     //實現(xiàn)非查詢的方法     public function exec($sql='')     {         $result = $this->pdo -> exec($sql);         //===為了區(qū)分 受影響的記錄數(shù)是0的情況         if($result===false){             $error_info = $this->pdo-> errorInfo();             $err_str = "SQL語句錯誤,具體信息如下:
".$error_info[2];             echo $err_str;             return false;         }         return $result;     }     //查詢語句返回的結(jié)果數(shù)量     public function resultRows()     {         return $this->resultRows;     }     //返回上次執(zhí)行插入語句返回的主鍵值     public function lastInsertId()     {         return $this->pdo->lastInsertId();     }     //數(shù)據(jù)轉(zhuǎn)義并引號包裹     public function escapeData($data='')     {         return $this->pdo->quote($data);     } }

當(dāng)前題目:開發(fā)自己的框架——(二)數(shù)據(jù)庫工具類的封裝
URL標題:http://weahome.cn/article/gcjghi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部