sql >> データベース >  >> RDS >> Mysql

PDOの持続的接続を使用するにはどうすればよいですか?

    この質問は非常に古いものですが、私が貢献すれば大丈夫です。データベース接続を処理するためにシングルトンクラスを実装する必要があると思います。以下にサンプルクラスを記述します。

    <?php
    class DB{
    
    //set the connection property to private to prevent direct access 
    private static $conn;
    
    //now since we dont want to reinstiate the class anytime we need it, lets also set the constructor to private 
    private function __construct(){}
    
    //now lets create our method for connecting to the database 
    public static function connect(){
    
    //now lets check if a connection exists already in our $conn property, then we should return it instead of recreating a new connection 
    if(!empty(self::$conn)){
    return self::$conn;
    }//end if 
    
    //upon reaching here means the $conn property is empty so lets create a new connection 
    
    try {
     $dbh = new PDO('mysql:host=127.0.0.1;dbname=lingtong', 'root', 'xxxxxx', array(PDO::ATTR_PERSISTENT => true));
    
    //lets now assign the database connection to our $conn property 
    self::$conn = $dbh;
    
    //return the connection 
    return $dbh;
    
    } catch (PDOException $e) {
     print "Error! : " . $e->getMessage() . "<br/>";
     die();
    }
    
    }//end method 
    
    }//end class
    
    ?>
    

    シングルトンクラスは1つの接続のみを作成して再利用できます。クラスの使用方法を見てみましょう。

    <?php 
    $dbh = DB::connect();
    
    foreach ($dbh->query('SELECT * from agent') as $row){ 
      print_r($row);
    }
    ?>
    


    1. MySQLからjson配列にデータをプルする

    2. 国際的な文字列を使用したPHPおよびMySQLのベストプラクティス

    3. MySQLデータベースの異なるフィールドの2つの数値の間に数値があるかどうかを確認します

    4. SQLDeveloper4.0がリリースされました