Как из класса вывести переменные

Статус
В этой теме нельзя размещать новые ответы.

serjinio

Гуру форума
Регистрация
10 Май 2007
Сообщения
439
Реакции
50
PHP:
class sql_connect 
{	# Установки соединения с базой данных
	private $db_host =''; // Адрес MySQL-сервера
	private $db_user =''; // Имя пользователя...
	private $db_pass =''; // Пароль
	private $db_name =''; // Имя базы данных 

	private   $db = NULL; // дескриптор соединения   #source
	protected $q_count=0; // количество sql запросов #int
	protected $q_time= 0; // время sql #int
	protected $delta = 0; // время выполнения sql запросов #int
		public function __construct()
		{
			$this->db =mysql_connect( $this->db_host, $this->db_user,$this->db_pass, FALSE) or die('MySQL error  ');
			mysql_query("SET NAMES 'utf8'",$this->db); 
			mysql_select_db($this->db_name,$this->db) or die('MySQL error : '.mysql_error());
			return TRUE;
		}
	public function do_query($query)
    {
        $this->q_count++;
        $t_start = microtime(1);//старт SQL 
        $this->result = mysql_query($query, $this->db);
		$q_time =(microtime(1)-$t_start);
		$this->delta+=$q_time;
        return($this->result);
    }
	public function __destruct()
    {
        mysql_close($this->db);
    }
}
$DB = new sql_connect;
Надо получить из функции do_query()
q_count и delta
 
PHP:
class sql_connect 
{	# Установки соединения с базой данных
	private $db_host =''; // Адрес MySQL-сервера
	private $db_user =''; // Имя пользователя...
	private $db_pass =''; // Пароль
	private $db_name =''; // Имя базы данных 
	private   $db = NULL; // дескриптор соединения   #source
	protected $q_count=0; // количество sql запросов #int
	protected $q_time= 0; // время sql #int
	protected $delta = 0; // время выполнения sql запросов #int
		public function __construct()
		{
			$this->db =mysql_connect( $this->db_host, $this->db_user,$this->db_pass, FALSE) or die('MySQL error  ');
			mysql_query("SET NAMES 'utf8'",$this->db); 
			mysql_select_db($this->db_name,$this->db) or die('MySQL error : '.mysql_error());
			return TRUE;
		}
	public function do_query($query)
    {
        $this->q_count++;
        $t_start = microtime(1);//старт SQL 
        $this->result = mysql_query($query, $this->db);
		$q_time =(microtime(1)-$t_start);
		$this->delta+=$q_time;
        return($this->result);
    }
	public function __destruct()
    {
        mysql_close($this->db);
    }
}
$DB = new sql_connect;
Надо получить из функции do_query()
q_count и delta
Переменные защищены от прямого доступа, как вариант добавить две функции, которые будут выводить необходимое
PHP:
### добавить в класс
             public function getQueryCount() {
                return $this->q_count;
            }  
            
            public function getDelta() {
                return $this->q_count;
            }    
### /добавить в класс


        $DB = new sql_connect;
        echo $DB->getQueryCount(); 
        echo $DB->getDelta();    запросов
 
Всё нормально запустилось но есть вопрос
PHP:
		private static $q_count= 0; // количество sql запросов #int
		private static $q_time = 0; // время sql #int
		public function __construct()
		{
			$this->db =mysql_connect( $this->db_host, $this->db_user,$this->db_pass, FALSE); 
			mysql_query("SET NAMES 'utf8'",$this->db); 
			mysql_select_db($this->db_name,$this->db); 
			return TRUE;
		}
		public function do_query($query) 
		{
			$t_start=microtime(1);
			$this->result = mysql_query($query, $this->db);
			$this->q_count++;
			$this->q_time +=(microtime(1)-$t_start);
			return($this->result);
		}
		public function Process()
		{  
			$q_sql = $this->do_query("SHOW PROCESSLIST",$this->db);
		}
		public function QueryCount() {return $this->q_count;}
        public function  QueryTime() {return $this->q_time;}        
		public function   db_close() {return mysql_close($this->db);}
		public function __destruct() {$this->db_close();} 
}
$mysql = new sql_connect();
$mysql->do_query("SELECT * FROM `img` ");
echo 'Количество MySQL запросов: '.$mysql->QueryCount().'<br />';
echo 'Время выполнения MySQL запросов: '.round($mysql->QueryTime(), 5).' секунд<br />';
Внешние соединения считает правильно , но соединения внутри класса не считает в частности
PHP:
public function Process(){  
   $q_sql = $this->do_query("SHOW PROCESSLIST",$this->db);
 }
 
Всё нормально запустилось но есть вопрос
PHP:
		private static $q_count= 0; // количество sql запросов #int
		private static $q_time = 0; // время sql #int
		public function __construct()
		{
			$this->db =mysql_connect( $this->db_host, $this->db_user,$this->db_pass, FALSE); 
			mysql_query("SET NAMES 'utf8'",$this->db); 
			mysql_select_db($this->db_name,$this->db); 
			return TRUE;
		}
		public function do_query($query) 
		{
			$t_start=microtime(1);
			$this->result = mysql_query($query, $this->db);
			$this->q_count++;
			$this->q_time +=(microtime(1)-$t_start);
			return($this->result);
		}
		public function Process()
		{  
			$q_sql = $this->do_query("SHOW PROCESSLIST",$this->db);
		}
		public function QueryCount() {return $this->q_count;}
        public function  QueryTime() {return $this->q_time;}        
		public function   db_close() {return mysql_close($this->db);}
		public function __destruct() {$this->db_close();} 
}
$mysql = new sql_connect();
$mysql->do_query("SELECT * FROM `img` ");
echo 'Количество MySQL запросов: '.$mysql->QueryCount().'<br />';
echo 'Время выполнения MySQL запросов: '.round($mysql->QueryTime(), 5).' секунд<br />';
Внешние соединения считает правильно , но соединения внутри класса не считает в частности
PHP:
public function Process(){  
   $q_sql = $this->do_query("SHOW PROCESSLIST",$this->db);
 }
PHP:
            public function Process() {  
                $t_start=microtime(1);
                $q_sql = $this->do_query("SHOW PROCESSLIST",$this->db);
                #$this->q_count++; # если нужно ещё и считать их расскоментируй 
                $this->q_time +=(microtime(1)-$t_start);          
            }
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху