select_db('БД'); // выполнение SQL запроса. // если установлен префикс к таблицам, обработчик подставляет его в выражения : // --- SELECT * FROM `имя таблицы` // --- INSERT INTO `имя таблицы` // --- UPDATE `имя таблицы` // --- DELETE FROM `имя таблицы` // также, он подствялет префикс в выражения наподобии "`table_one`.`field_one`" $resource = $db -> sql('SQL запрос'); // получение одиночного результата $string = $db -> one('SQL запрос'); // последний вставленны идентификатор $integer = $db -> last_id(); // результат запроса в виде массива $array = $db -> allfetch('SQL запрос'); // результат запроса, для прохождения в цикле while // в качестве единственного параметра, можно указать SQL запрос ($db -> fetch('SQL запрос')) , либо уже ресурс SQL запроса ($db -> fetch($sql_resource)) while($data = $db -> fetch('SQL запрос')) { echo $data['id']; } // проверка статуса соединения $bool = $db -> connect(); */ class SW { public $mysql_prefix = null; private $mysql_connect = false; private $connected = false; private $mysql_db = null; private $fetch_sqls = array(); function __construct($user = 'root',$password = null,$host = 'localhost',$db = null,$prefix = null) { if(!($this -> mysql_connect = @mysql_connect($host,$user,$password))) { $this -> fatalError('Невозможно установить соединение'); } $this -> connected = true; @mysql_query('SET NAMES utf8',$this -> mysql_connect); if(!empty($prefix)) { $this -> mysql_prefix = $prefix; } if(!empty($db)) { if(!(@mysql_select_db($db,$this -> mysql_connect))) { $this -> fatalError('Невозможно выбрать бд'); } $this -> mysql_db = $db; } } function __destruct() { if($this -> connected) { @mysql_close($this -> mysql_connect); } } public function select_db($db = null) { if(!(@mysql_select_db($db,$this -> mysql_connect))) { $this -> fatalError('Невозможно выбрать бд'); } $this -> mysql_db = $db; } public function sql($sql = null) { $this -> only_connect(); if(empty($sql)) { $this -> fatalError('Не указан SQL запрос'); return false; } if(!empty($this -> mysql_prefix)) { $sql = preg_replace('~`([^[:space:]]*)`\.`([^[:space:]]*)`~U','`'.$this -> mysql_prefix.'$1`.`$2`',$sql); preg_match_all('~(FROM|INSERT INTO|UPDATE|DELETE FROM) `(.*)`~siUu',$sql,$finds); for($c = count($finds[0]),$i = 0;$i < $c;$i ++) { $sql = str_replace($finds[0][$i],$finds[1][$i].' `'.$this -> mysql_prefix.$finds[2][$i].'`',$sql); } } if(!($result = @mysql_query($sql,$this -> mysql_connect))) { $this -> fatalError('

Ошибка в SQL запросе "'.$sql.'" : '.@mysql_error($this -> mysql_connect).'

'); } $this -> fetch_sql = array($sql,$result); return $result; } public function one($sql) { return @mysql_result($this -> sql($sql),0); } public function allfetch($sql) { $result = $this -> sql($sql); $data = array(); while($res = @mysql_fetch_array($result)) { $data[] = $res; } return (count($data) > 0) ? $data : null; } public function last_id() { return @mysql_insert_id($this -> mysql_connect); } public function fetch($sql) { if(is_resource($sql)) { if(get_resource_type($sql) == 'mysql result') { return @mysql_fetch_array($sql); } else { fatalError('Неверные входящие данные'); } } if(!isset($this -> fetch_sqls[$sql])) { $this -> fetch_sqls[$sql] = $this -> sql($sql); } return @mysql_fetch_array($this -> fetch_sqls[$sql]); } public function connect() { return $this -> mysql_connect; } private function only_connect() { if(!$this -> connected) { $this -> fatalError('Для этой операции необходимо подключиться к серверу'); } } private function fatalError($msg = 'Неизвестная ошибка') { die('SW error : '.$msg); } } ?>