MySQLシングルトン

class db {

    private static $db = NULL;

    public $dbHost = 'ホスト';
    public $dbPort = 'ポート';
    public $dbName = 'データベース名';
    public $dbUser = 'ユーザ名';
    public $dbPass = 'パスワード';
    public $dbCharSet = '文字コード';

    public $sql = NULL;

    /* Constructer 
     * Singleton
     */
    private function __construct(){

        try{
            $dsn = 'mysql:host='.$this->dbHost.';port='.$this->dbPort.';dbname='.$this->dbName;
            self::$db = new PDO($dsn, $this->dbUser, $this->dbPass, array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET '.$this->dbCharSet));
            self::$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
            
        }catch(PDOException $e){
            header('Content-type: text/plain; charset=UTF-8');
            die('データベースの接続に失敗しました。:'.$e->getMessage());
        }

    }

    public static function getInstance(){
        if (is_null(self::$db)) {
            new self;
        }
        return self::$db;
    }

}

投稿日

カテゴリー:

,

投稿者:

タグ: