<?php
/**
* СодеÑÐ¶Ð¸Ñ ÐºÐ»Ð°ÑÑ DBConnect
*
* @package energine
* @subpackage configurator
* @author Tigrenok
* @copyright ColoCall 2007
* @version $Id: DBConnect.class.php,v 1.5 2007/11/23 14:38:32 tigrenok Exp $
*/
/**
* Ð¡Ð¾Ð·Ð´Ð°ÐµÑ ÐºÐ¾Ð¿Ð¸Ð¸ (или Ñимлинки) Ñайлов
*
* @package energine
* @subpackage configurator
*/
class DBConnect {
/**
* DBConnect instance
*
* @var DBConnect
* @access private
*/
private static $instance;
/**
* SQL resource
*
* @var SQL resource
* @access private
*/
private $resource;
/**
* ÐаглÑÑка конÑÑÑÑкÑоÑа
*
* @return void
* @access private
*/
private function __construct() {}
/**
* Создание ÑкземплÑÑа
*
* @return DBConnect instance
* @access public
*/
public static function run() {
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
/**
* Соединение Ñ ÑеÑвеÑом баз даннÑÑ
*
* @param string
* @param string
* @param string
* @return boolean
* @access public
*/
public function connect($host,$username,$password) {
if (!@(mysql_connect($host,$username,$password))) {
throw new Exception('Ðевозможно ÑоедениÑÑÑÑ Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ
! ('.mysql_error().')');
} else {
return true;
}
}
/**
* ÐÑÐ±Ð¾Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
*
* @param string
* @return boolean
* @access public
*/
public function selectdb($dbname) {
if (!mysql_select_db($dbname)) {
throw new Exception('Ðевозможно вÑбÑаÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
! ('.mysql_error().')');
} else {
return true;
}
}
/**
* ÐÑполнение запÑоÑа
*
* @param string
* @return void
* @access public
*/
public function query($query) {
if (!($this->resource = mysql_query($query))) {
throw new Exception('ÐевеÑнÑй MySQL запÑÐ¾Ñ ('.$query.')! ('.mysql_error().')');
}
}
/**
* ÐÑбоÑка маÑÑива
*
* @return array
* @access public
*/
public function fetchArray() {
if (!is_resource($this->resource)) {
throw new Exception('ÐевеÑнÑй MySQL ÑеÑÑÑÑ!');
}
$result = array();
while($line = mysql_fetch_row($this->resource)) {
$result[] = $line;
}
return $result;
}
/**
* ÐÑбоÑка Ñ
ÑÑа
*
* @return array
* @access public
*/
public function fetchHash() {
if (!is_resource($this->resource)) {
throw new Exception('ÐевеÑнÑй MySQL ÑеÑÑÑÑ!');
}
$result = array();
while($line = mysql_fetch_assoc($this->resource)) {
$result[] = $line;
}
return $result;
}
/**
* ÐакÑÑÑие ÑоодинениÑ
*
* @return void
* @access public
*/
public function disconnect() {
mysql_close();
}
/**
* ÐÑÐ´Ð°ÐµÑ SQL оÑибкÑ
*
* @return string
* @access public
*/
public function error() {
return mysql_error();
}
/**
* ÐÑÐ´Ð°ÐµÑ Ð°Ð²ÑоинкÑеменÑалÑнÑй иденÑиÑикаÑÐ¾Ñ Ð¿Ð¾Ñледнего добавленного ÑлеменÑа
*
* @return int
* @access public
*/
public function lastId() {
return mysql_insert_id();
}
/**
* ÐодгоÑÐ°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð´Ð»Ñ ÐºÐ¾ÑÑекÑноÑÑи запÑоÑов
* ÐапÑÑкаеÑÑÑ !ÑолÑко! ÑеÑез array_walk
*
* @param array
* @return void
* @access public
*/
public function prepare(&$value, $key) {
$value = str_replace("\n",'\n',$value);
$value = str_replace("\r",'',$value);
$value = str_replace("'","\'",$value);
if (!is_numeric($value)) {
$value = '\''.$value.'\'';
}
}
/**
* ÐаглÑÑка клониÑованиÑ
*
* @return void
* @access public
*/
public function __clone() {
trigger_error('ÐлониÑование запÑеÑено законом. Ðа наÑÑÑение - кÑиминалÑÐ½Ð°Ñ Ð¾ÑвеÑÑÑвенноÑÑÑ! :)', E_USER_ERROR);
}
}
?>