|
|
|
|
<?
class connect
{
private static $q_count= 0; // количество sql запросов #int
# оболочка mysql_query
public function q_query($query) {
$this->result = mysql_query($query, $this->db);
$this->q_count++;
return($this->result);
}
public function Wls(){
$q_sql = $this->q_query("SELECT .. "); // не работает
}
public function QueryCount() {return $this->q_count;}
}
$mysql = new sql_connect();
$mysql->q_query("SELECT ..... "); // работает
function Wls()
{
$q_sql = $mysql->q_query("SELECT .. "); // не работает
}
echo 'sql запросов :'.$mysql->QueryCount();
|
| |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 19:27)
| | А где у вас вызов функции Wls?
class connect
$mysql = new sql_connect();
И че-т я не догоняю.. | |
|
|
|
|
|
|
|
для: neadekvat
(29.03.2010 в 20:40)
| | Да ,сори ,это куски черновика правильно :
Как в классе правильно вызвать функцию? | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 23:05)
| | разве $this-> <имя функции> не работает? | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 23:05)
| | $mysql->Wls(); - это из внешней части вместо фрагмента, где вы функцию создаете.
Для обращения изнутри класса - ответ выше.
Я считаю, вам следует задуматься над тем, зачем вы создаете этот класс. ООП ради ООП бессмысленно. | |
|
|
|
|
|
|
|
для: neadekvat
(29.03.2010 в 23:17)
| |
public function Wls(){
$q_sql = $this->q_query("SELECT .
|
Да,эта часть не работает нет подсчёта обращения к бд
А то, что насчёт ооп - это просто эксперимент | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 19:27)
| |
<?php
$mysql->q_query("SELECT ..... "); // работает
Wls($mysql);
function Wls($obj)
{
$q_sql = $obj->q_query("SELECT .. "); // так по идее должно работать
}
|
| |
|
|
|
|
|
|
|
для: psychomc
(29.03.2010 в 23:22)
| | Должно.
Но где обращение к функции, елки палки? Его нет не в исходном, ни в вашем коде. | |
|
|
|
|
|
|
|
для: neadekvat
(29.03.2010 в 23:26)
| | суть темы мало ясна, поэтому описал просто фрагмент где не работает.
а к функции...смотря к какой, к WLs например чуть выше | |
|
|
|
|
|
|
|
для: neadekvat
(29.03.2010 в 23:26)
| | Отлично работает, но это внешний вызов функции (за пределами класса) , как сделать это-же внутри класса,
именно в функции (внутри класса)
public function Wls(){
$q_sql = $this->q_query("SELECT .. "); // не работает
}
|
спасибо. | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 23:34)
| | вот здесь мне кажется как раз всё правильно
q_query принадлежит классу, ошибка скорее всего не в вызове, а в самой функции.
а если просто в ней написать например
<?php
public function q_query()
{
echo "Я q_query";
}
|
неужели так не работает? | |
|
|
|
|
|
|
|
для: psychomc
(29.03.2010 в 23:39)
| | Так работает ,естественно, ( функция q_query() рабочая ) ,но почему она не вызывается внутри функции public function Wls(){ } загадка за семью печатями (она[ public function q_query( ) ] должна подсчитать обращение К БД внутри public function Wls(){ } ,но этого не происходит | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 23:34)
| | $this->Wls(); | |
|
|
|
|
|
|
|
для: neadekvat
(29.03.2010 в 23:53)
| | Не пошло ,сейчас попробую слепить код из кусков
<?
class connect
{
# Установки соединения с базой данных
private $db_host ='';
private $db_user ='';
private $db_pass ='';
private $db_name ='';
private $db = NULL; // дескриптор соединения
private static $q_count= 0; // количество sql запросов
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;
}
# оболочка mysql_query
public function q_query($query)
{
$this->result = mysql_query($query, $this->db);
$this->q_count++;
//++$this->q_count;
return($this->result);
}
public function Wls()
{
$q_sql = $this->q_query("SELECT * FROM `img` "); // не считает к-во запросов
}
public function QueryCount() {return $this->q_count;}
public function db_close() {return mysql_close($this->db);}
public function __destruct() {$this->db_close();}
}
$mysql = new connect();
$mysql->q_query("SELECT * FROM `img` "); // работает
echo 'sql запросов :'.$mysql->QueryCount().'<br />'; // 1--> Должно быть 2 запроса
|
| |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 19:27)
| | >
function Wls()
{
$q_sql = $mysql->q_query("SELECT .. "); // не работает
}
|
$mysql - в контексте функции неопределенная переменная. А у Вас заблокированы нотайсы.
Ну не фу? | |
|
|
|
|
|
|
|
для: Trianon
(29.03.2010 в 23:37)
| | Нет это святое ошибок не выдаёт | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 23:50)
| | Вот! Я же говорю, что к функции нигде не идет обращение. | |
|
|
|
|
|
|
|
для: oliss
(29.03.2010 в 23:50)
| | E_ALL|E_NOTICE | |
|
|
|