このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
- 02 Apache2で自己認証ssl [中間証明書の整合性確認]
Tag Cloud
このページへのアクセス
今日: 1 / 昨日: 1
総計: 295
- Dokuwiki.fl8.jp(107)
- counter(3)
- code2(3)
- 01 lvmをマウント(3)
- 23 ceph コマンド(3)
最近の更新
このページへのアクセス
今日: 1 / 昨日: 1
総計: 295
<?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); } }