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

Encapsulate PDO operation database

1, create the file MysqlPdo.class.php file to encapsulate the PDO operation database

The specific code is as follows:

<?php
class MysqlPdo{
    private $dbConfig=array(
        'db'=>'mysql',
        'host'=>'localhost',
        'port'=>'3306',
        'user'=>'root',
        'pwd'=>'',
        'charset'=>'utf8',
        'dbname'=>''
    );
    private static $instance;  //單例模式
    private $db;   //PDO實(shí)例
    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{
            //實(shí)例化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. This encapsulation class adopts singleton mode and privatizes the construction method and cloning method to ensure that there can only be one instantiated object and save database connection resources.

2, getInstance() must be called every time a database connection object is created. Pass in the database configuration information in getInstance to automatically call the constructor when instantiating the object to use the incoming database configuration information. Merge with the original information to facilitate the expansion of connections to other databases. To change the database, you only need to change the configuration information

3. Execute the sql statement through preprocessing

微信圖片_20180306141145.png

##4, the use of coherent operations

微信圖片_20180306141535.png

5, processing the query result set

微信圖片_20180306141909.png

# #The above is the encapsulation of the database class

Continuing Learning
||
<?php echo "封裝類的處理";
submitReset Code