国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

封裝PDO操作資料庫

1,建立檔案MysqlPdo.class.php檔案用來封裝PDO作業(yè)資料庫

具體程式碼如下:

<?php
class MysqlPdo{
    private $dbConfig=array(
        'db'=>'mysql',
        'host'=>'localhost',
        'port'=>'3306',
        'user'=>'root',
        'pwd'=>'',
        'charset'=>'utf8',
        'dbname'=>''
    );
    private static $instance;  //單例模式
    private $db;   //PDO實例
    private $data=array(); //操作數(shù)據(jù)
    private function __construct($params)
    {
        $this->dbConfig=array_merge($this->dbConfig,$params);
        $this->connect();
    }
    //連接服務(wù)器
    private function connect(){
        //mysql:host=localhost
        //mysql:host:localhost;port=3306;dbname=php;charset=utf-8
        $dsn="{$this->dbConfig['db']}:host={$this->dbConfig['host']};port={$this->dbConfig['port']};dbname={$this->dbConfig['dbname']};charset={$this->dbConfig['charset']}}";
        try{
            //實例化PDO
            $this->db=new PDO($dsn,$this->dbConfig['user'],$this->dbConfig['pwd']);
        }catch (PDOException $exception){
            die("數(shù)據(jù)庫連接失敗");
        }
    }
    public static function getInstance($params=array()){
        if(!self::$instance instanceof self){
            self::$instance=new self($params);
        }
        return self::$instance; //返回對象
    }
    //私有化克隆,防止外部調(diào)用clone $對象 生成新的對象,因為是單例模式
    private function __clone()
    {
        // TODO: Implement __clone() method.
    }
    //通過預(yù)處理方式執(zhí)行sql
    public function query($sql,$batch=false){
        $data=$batch?$this->data:array($this->data);
        $this->data=array();
        //通過預(yù)處理方式執(zhí)行SQL
        $stmt=$this->db->prepare($sql);
        foreach($data as $v){
            if($stmt->execute($v)===false){
                die("數(shù)據(jù)庫PDO預(yù)處理操作失敗");
            }
        }
        return $stmt;
    }
    public function data($data){
        $this->data=$data;
        return $this; //返回對象自身用于連貫操作
    }
    //取得一行結(jié)果
    public function fetchRow($sql){
        return $this->query($sql)->fetch(PDO::FETCH_ASSOC);//返回索引數(shù)組
    }
    //取得多行結(jié)果
    public function fetchAll($sql){
        return $this->query($sql)->fetchAll(PDO::FETCH_ASSOC);
    }
}

1,本封裝類別採用單例模式,私有化了建構(gòu)方法與複製方法,保證只能有一個實例化物件,節(jié)約資料庫連線資源,

#2,在每次建立資料庫連接物件時必須呼叫g(shù)etInstance(),在getInstance裡傳入資料庫配置資訊用於在實例化物件的時候自動呼叫建構(gòu)函式使傳入的資料庫配置訊息與原來的資訊進行合併,方便擴展其他資料庫的連接,更換資料庫也只需要更改配置資訊即可

3,透過預(yù)處理方式執(zhí)行sql語句

微信圖片_20180306141145.png

4,連貫運算的使用

微信圖片_20180306141535.png

5,處理查詢的結(jié)果集

微信圖片_20180306141909.png

#以上便是對資料庫類別的封裝處理

#
繼續(xù)學(xué)習(xí)
||
<?php echo "封裝類的處理";