Files
majestic/classes/pg_DBConnector.class.php
pzinovkin 5e49d4417f copyright changed to "NetMonsters <team@netmonsters.ru>", #3
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/trunk@95 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
2009-06-02 11:27:26 +00:00

111 lines
2.8 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 NetMonsters <team@netmonsters.ru>
* @link
* @package Majestic
* @subpackage DB
* @since
* @version SVN: $Id$
* @filesource $URL$
*/
class DBConnector
{
static private $handlers = array();
static public $queries = array();
/**
* Запрещаем new и клонирование
*/
private function __construct(){}
private function __clone(){}
/**
* Получение соединения.
* Если соединение с такими параметрами уже есть - новое не создается.
*
* @param array $db_settings - массив настроек
* @return resource - идентификатор соединения
*/
static public function getConnect($db_settings)
{
$handler_name = self::getConnectionName($db_settings);
if (isset(self::$handlers[$handler_name])) {
return self::$handlers[$handler_name];
}
if (!$handler = pg_connect("host='".$db_settings['host']."' dbname='".$db_settings['database']."' user='".$db_settings['user']."' password='".$db_settings['password']."'")) {
throw new MJException('Can\'t connect to DB '.pg_last_error(), 2);
}
return self::$handlers[$handler_name] = $handler;
}
static protected function getConnectionName($db_settings)
{
return $db_settings['host'] . '-' . $db_settings['database'];
}
/////////
static public function query($handler, $sql)
{
return pg_query($handler, $sql);
}
static public function escape($handler, $str)
{
return pg_escape_string($str);
}
static public function error($handler)
{
return pg_last_error($handler);
}
static public function free($result)
{
return pg_free_result($result);
}
static public function fetchObject($result, $class_name = false)
{
return $class_name ? pg_fetch_object($result, null, $class_name) : pg_fetch_object($result);
}
static public function numRows($result)
{
return pg_num_rows($result);
}
static public function affectedRows($handler, $result)
{
return pg_affected_rows($result);
}
static public function getId($handler)
{
return -1; //DISABLED FORM postgreSQL
}
static public function autocommit($handler, $switch)
{
throw new MJException('Autocommit disabled for postgreSQL Connector' ,1);
}
static public function commit($handler)
{
throw new MJException('Commit disabled for postgreSQL Connector' ,1);
}
static public function rollback($handler)
{
throw new MJException('Rollback disabled for postgreSQL Connector' ,1);
}
}
?>