このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 7 / 昨日: 0
総計: 288
- Dokuwiki.fl8.jp(1546)
- 13 CentOS6メール設定(33)
- FreeBSD カーネル再構築(29)
- VPNサーバ(PacketiX)(26)
- 05 rsync(25)
最近の更新
このページへのアクセス
今日: 7 / 昨日: 0
総計: 288
<?php class Database { public static $conf = array( 'host' => '[host]', 'db' => '[db_name]', 'user' => '[db_user]', 'password' => '[db_password]', 'charset' => 'utf8', ); static $_instance; private function __construct() { try{ //$this->getConf(); $dsn_basic = 'mysql:host=' . static::$conf['host'] . ';dbname='.static::$conf['db']; $this->_db = new PDO($dsn_basic, static::$conf['user'], static::$conf['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') ); $this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(Exception $e){ echo static::$conf['host'] . " connection error"; exit; } } private function __clone(){} public static function getDb() { if (!(self::$_instance instanceof self)) { self::$_instance = new self(); } //return self::$_instance; return self::$_instance->_db; } public function query($sql) { return query($this->_db,$sql); } }
<?php require_once('lib/Database.php'); Database::$conf['host']='[host_name]'; $dbh = Database::getDb();
static, self が利用できないので、クラス名をそのまま書く必要があります。
5.1, 5.3 の両環境で利用する場合は、下記のように書いておくと両方で利用する事ができます。
<?php class Database { public static $conf = array( 'host' => '[host]', 'db' => '[db_name]', 'user' => '[db_user]', 'password' => '[db_password]', 'charset' => 'utf8', ); static $_instance; private function __construct() { try{ //$this->getConf(); $dsn_basic = 'mysql:host=' . Database::$conf['host'] . ';dbname='.Database::$conf['db']; $this->_db = new PDO($dsn_basic, Database::$conf['user'], Database::$conf['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') ); $this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(Exception $e){ echo Database::$conf['host'] . " connection error"; exit; } } private function __clone(){} public static function getDb() { if (!(Database::$_instance instanceof self)) { Database::$_instance = new Database(); } //return Database::$_instance; return Database::$_instance->_db; } public function query($sql) { return query($this->_db,$sql); } }