<?php
if ( defined("mysql_class") ){
	return FALSE;
}
define("mysql_class", 1);



class database 
{
	private $db_connect;
	public  $prefix;
	private $debug = false;
	
	
	
   
		//	get
	public function prefix($table){
		return $this -> prefix.'_'.$table;
	}
	
		//	connect
	public function connect($s, $u, $p, $per=0){
		$this -> db_connect=($per==1)?@mysql_pconnect($s,$u,$p):@mysql_connect($s,$u,$p);
		if ( empty($this -> db_connect) ){
			sys_error('500',E_DATABASE_CONNECT);
			return FALSE;
		}
	return TRUE;
	}
	
	public function select_db($db){
		if ( mysql_select_db($db, $this -> db_connect) ){
			return TRUE;
		}
		sys_error('500',E_DATABASE_SELECT);
	}	
	
	public function close(){
		if( $this->query_result ){
			@mysql_free_result($this -> query_result);  
		}
		return mysql_close($this -> db_connect);
	}
		
		
		//	sql
	public function query($sql,$error=false){
			//	включаем счётчик времени 
		if ( MAIN_DEBUG_MODE==1  ){
			$b_time = microtime();
		}
		if ( $this -> debug ){die($sql);};
		$res = mysql_query($sql);
			//	невыполнение запроса это критическая ошибка в работе программы
		if ( !$res ){
			
				//	ошибка генерируется
			sys_error('500', sprintf(E_EXECUTE_QUERY,sys_short_text($sql,50,50),mysql_error()) );
		}elseif( $res ){
				//	отладка запроса
			if ( MAIN_DEBUG_MODE==1  ){
				sys_error(SQL_MSG,array('sql'=>$sql,'time'=>sys_timer($b_time) ) );
			}
				//	запрос выполняется больше 1 секунды, то бьём тревогу
			//if ( $time>1 ){
			//	$this -> make_error(ERROR_MESSAGE, sprintf(M_SLOW_EXECUTE_QUERY,$sql) );
			//}
		}
		return $res;
	}
	
	public function num_rows($resource){
       return @mysql_num_rows($resource);
    }
	public function fetch_array($resource=''){
		return  @mysql_fetch_array($resource);
    }
	public function fetch_object($resource=''){
		return  @mysql_fetch_object($resource);
    }
	public function fetch_assoc($resource = 0){
		return  @mysql_fetch_assoc($resource);
    }
    public function insert_id(){
       return @mysql_insert_id($this->db_connect);
    }
		//	set 
	public function set_prefix($prefix){
		$this -> prefix = $prefix;
	}
	public function set_debug($flag){
		$this -> debug=$flag;
	}
	

	public function importFile($file){

		$file_content = file($file);
		$query = "";
		foreach($file_content as $sql_line){
		if(trim($sql_line) != "" && strpos($sql_line, "--") === false){

		 $query .= $sql_line;
		 if (substr(rtrim($query), -1) == ';'){
		 	 $query = str_replace('{prefix}',$this -> prefix,$query);
		   $this -> query($query);
		   $query = "";
		  }
		 }
		}
		return true;
	}
	
}
?>
