2016-03-19 10 views
0

次のコードは動作しますが、この手法の方がより良いアプローチになると思いますか?私は各クエリの新しいインスタンスを作成するのではなく、接続の再利用を開始したいと思います。 私のコードに実際的なアドバイスと解決策はありますか?リクエストごとに新しいインスタンスを作成するのではなく、DB接続を再利用する

<?php 
class dbc { 
    function openDb() { 

     $dbserver = ''; 
     $dbusername = ''; 
     $dbpassword = ''; 
     $dbname = ''; 

     try { 
      $db = new PDO('mysql:host=' . $dbserver . ';port=3306;dbname=' . $dbname . ';charset=utf8', '' . $dbusername . '', '' . $dbpassword . '', array(PDO::MYSQL_ATTR_INIT_COMMAND =>"SET SESSION time_zone = 'America/Chicago'")); 
      $timezone = "America/Chicago"; 
      $db->exec("SET time_zone = '{$timezone}'"); 

     } catch (PDOException $e) { 
      print "Error!: " . $e->getMessage() . "<br/>"; 
      die("error, please try again"); 
     } 
     return $db; 
    } 
} 

<?php  
require 'dbc.php'; 

function getDailyProfitability() { 
    $db = new dbc(); 
    $query = "SELECT 1 FROM DUAL"; 
    $stmt = $db->openDb()->prepare($query); 
    $stmt->execute(); 
    return $stmt->fetchAll(); 
}  
?> 

答えて

1

これはあなたが探しているが、私はあなたのデータベース接続を保存するために静的変数を使用して語るthis記事を見つけた、まさにあればわかりません。

関連する問題