Files
majestic/classes/DBConnector.class.php
pzinovkin 08db172f23 refactoring for Load::model removal
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/trunk@56 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
2009-02-03 10:49:08 +00:00

67 lines
1.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Класс базы данных.
* Возвращает идентификатор соединения
*
* @copyright
* @link
* @package Majestic
* @subpackage DB
* @since
* @version SVN: $Id$
* @filesource $URL$
*/
class DBConnector
{
private $handlers = array();
static private $instance = null;
static public $queries = array();
/**
* Запрещаем new и клонирование
*/
private function __construct(){}
private function __clone(){}
/**
* Единственный способ инициализации. Singletone как-никак.
* @return DBConnector
*/
static public function getInstance()
{
if (self::$instance == null) {
self::$instance = new DBConnector();
}
return self::$instance;
}
/**
* Получение соединения.
* Если соединение с такими параметрами уже есть - новое не создается.
*
* @param array $db_settings - массив настроек
* @return resource - идентификатор соединения
*/
public function getConnect($db_settings)
{
$handler_name = $this->getConnectionName($db_settings);
if (isset($this->handlers[$handler_name])) {
return $this->handlers[$handler_name];
}
if (!$handler = mysqli_connect($db_settings['host'], $db_settings['user'], $db_settings['password'], $db_settings['database'])) {
throw new MJException('Can\'t connect to DB '.mysqli_connect_error(), 2);
}
mysqli_query($handler, "SET NAMES 'utf8'"); //cheat!!!
return $this->handlers[$handler_name] = $handler;
}
protected function getConnectionName($db_settings)
{
return $db_settings['host'] . '-' . $db_settings['database'];
}
}
?>