亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Encapsuler la base de données des opérations PDO

1. Créez le fichier MysqlPdo.class.php pour encapsuler la base de données des opérations PDO

Le code spécifique est le suivant :

<?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ù)庫(kù)連接失敗");
        }
    }
    public static function getInstance($params=array()){
        if(!self::$instance instanceof self){
            self::$instance=new self($params);
        }
        return self::$instance; //返回對(duì)象
    }
    //私有化克隆,防止外部調(diào)用clone $對(duì)象 生成新的對(duì)象,因?yàn)槭菃卫J?    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ù)庫(kù)PDO預(yù)處理操作失敗");
            }
        }
        return $stmt;
    }
    public function data($data){
        $this->data=$data;
        return $this; //返回對(duì)象自身用于連貫操作
    }
    //取得一行結(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. La méthode de clonage garantit qu'il ne peut y avoir qu'un seul objet instancié, économisant ainsi les ressources de connexion à la base de données.

2. GetInstance() doit être appelé chaque fois qu'un objet de connexion à la base de données est créé. Transmettez les informations de configuration de la base de données dans getInstance pour. utilisation dans Lors de l'instanciation d'un objet, le constructeur est automatiquement appelé pour fusionner les informations de configuration de la base de données entrantes avec les informations d'origine, ce qui facilite l'expansion des connexions à d'autres bases de données. Pour changer de base de données, il vous suffit de modifier les informations de configuration

. 3, grace au prétraitement, exécuter des instructions SQL

微信圖片_20180306141145.png

4, utiliser des opérations cohérentes

微信圖片_20180306141535.png

5, traiter l'ensemble de résultats de la requête

微信圖片_20180306141909.png

C'est tout Encapsulation des classes de base de données

Formation continue
||
<?php echo "封裝類的處理";
soumettreRéinitialiser le code