ok, poskładałem to do kupy i mam:
<?php
// ustawienia bazy danych
define ("DB_HOST", "localhost");
// nie zmieniac nic ponizej
require_once 'classes/db.php';
$db=DB
::getInstance(array("host" => DB_HOST
, "dbname" => DB_NAME
, "username" => DB_USER
, "password" => DB_PASS
));
?>
następnie classes/db.php:
<?php
class DB {
private $db_info = array("host" => "localhost", "dbname" => "myDB", "username" => "myDB_user", "password" => "myDB_password"); private $dbh;
public static $instance = NULL;
private function __construct
(array $db_info = null) { foreach($db_info as $key_name => $key_value) {
if(!in_array($key_name, array("host", "db_name", "username", "password") || empty($key_value))) { throw new Exception("Invalid key passed!");
}
$this->db_info = $db_info;
}
}
$this->dbh = new PDO
("mysql:host={$this->db_info['host']};dbname={$this->db_info['db_name']}", $this->db_info['username'], $this->db_info['password'], array(PDO
::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$this->dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}
public static function getInstance
() { if(!isset(self::$instance)) { self::$instance = new DB();
}
return self::$instance;
}
}
?>
jakieś uwagi?