View file system/inc/classes/mysql.class.php

File size: 3.48Kb
<?php
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Класс для работы с базой данных
=============================================
Official website: http://shcms.ru
=============================================
Данный код защищен авторскими правами
=============================================
*/
class mySQL
{
	var $db_id = false;
	var $connected = false;
	var $query_num = 0;
	var $query_list = array();
	var $mysql_error = '';
	var $mysql_version = '';
	var $mysql_error_num = 0;
	var $mysql_extend = "MySQL";
	var $MySQL_time_taken = 0;
	var $query_id = false;
		function connect($user_db, $user_pass, $user_user, $user_localhost, $show_error=1)
	{
		if(!$this->db_id = mysql_connect($user_localhost, $user_db, $user_pass)) {
			if($show_error == 1) {
				$this->display_error(mysql_error(), mysql_errno());
			} else {
				return false;
			}
		} 
		if(!@mysql_select_db($user_user, $this->db_id)) {
			if($show_error == 1) {
				$this->display_error(mysql_error(), mysql_errno());
			} else {
				return false;
			}
		}
		$this->mysql_version = mysql_get_server_info();
		if (version_compare($this->mysql_version, '4.1', ">=")) mysql_query("/*!40101 SET NAMES '" . COLLATE . "' */");
		$this->connected = true;
	return true;
	}
		function query($query, $show_error=true)
	{
		$time_before = $this->get_real_time();
if(!$this->connected) $this->connect(DBUSER, DBPASS, DBNAME, DBHOST);
				if(!($this->query_id = mysql_query($query, $this->db_id) )) {
			$this->mysql_error = mysql_error();
			$this->mysql_error_num = mysql_errno();
		if($show_error) {
				$this->display_error($this->mysql_error, $this->mysql_error_num, $query);
			}
		}
		$this->MySQL_time_taken += $this->get_real_time() - $time_before;
			$this->query_num ++;
	return $this->query_id;
	}
	function get_row($query_id = '')
	{
		if ($query_id == '') $query_id = $this->query_id;
		return mysql_fetch_assoc($query_id);
	}
	function get_affected_rows()
	{
	return mysql_affected_rows($this->db_id);
	}
	function get_array($query_id = '')
	{
		if ($query_id == '') $query_id = $this->query_id;
		return mysql_fetch_array($query_id);
	}
	function super_query($query, $multi = false)
	{
		if(!$multi) {
			$this->query($query);
			$data = $this->get_row();
			$this->free();			
			return $data;
		} else {
			$this->query($query);
			
			$rows = array();
			while($row = $this->get_row()) {
				$rows[] = $row;
			}
			$this->free();			

			return $rows;
		}
	}
	function num_rows($query_id = '')
	{
		if ($query_id == '') $query_id = $this->query_id;

		return mysql_num_rows($query_id);
	}
	function insert_id()
	{
		return mysql_insert_id($this->db_id);
	}
	function get_result_fields($query_id = '') {

		if ($query_id == '') $query_id = $this->query_id;

		while ($field = mysql_fetch_field($query_id))
		{
            $fields[] = $field;
		}
		return $fields;
   	}
	function safesql( $source )
	{

		if ($this->db_id) return mysql_real_escape_string ($source, $this->db_id);
		else return addslashes($source);
	}
	function free( $query_id = '' )
	{

		if ($query_id == '') $query_id = $this->query_id;

		@mysql_free_result($query_id);
	}
	function close()
	{
		@mysql_close($this->db_id);
	}

	function get_real_time()
	{
		list($seconds, $microSeconds) = explode(' ', microtime());
		return ((float)$seconds + (float)$microSeconds);
	}	

}
$mySQL = new mySQL;
?>