class mysql
{
var $connect; //Соединение с бд
function close()
{
mysql_close($this->connect);
}
}
class SYS extends mysql {
...
}
$SYS = new SYS();
$SYS->close();
Warning: mysql_close() expects parameter 1 to be resource, null given in Z:\home\pilka\www\includes\mysql.php on line 28
Итого переменную в классе не видит. Как её правильно вызвать
Спустя 5 минут, 20 секунд (8.05.2012 - 12:14) m4a1fox написал(а):
<?php
class mysql
{
public $connect = 'TRUE'; //Соединение с бд
public function strtoL($str){
return strtolower($str);
}
public function close()
{
return $this->strtoL($this->connect);
}
}
class SYS extends mysql {
}
$SYS = new SYS();
echo $SYS->close();
Вот такой пример накидал! Думай!
Спустя 1 минута, 17 секунд (8.05.2012 - 12:15) jalvar написал(а):
Нет переменная коннект содержит рез. функции mysql_connect
Спустя 4 минуты, 5 секунд (8.05.2012 - 12:19) Игорь_Vasinsky написал(а):
т.е. объект.
если она что то содержит - то в классе это не видно. либо глобализируй(зло) - либо константа (не коширно), либо передавай её аргументом.
и var - давно умерли.
если она что то содержит - то в классе это не видно. либо глобализируй(зло) - либо константа (не коширно), либо передавай её аргументом.
и var - давно умерли.
Спустя 1 минута, 48 секунд (8.05.2012 - 12:21) m4a1fox написал(а):
Цитата |
если она что то содержит - то в классе это не видно. либо глобализируй(зло) - либо константа (не коширно), либо передавай её аргументом. |
Либо показывай код полностью. Чует мое сердце что-то ты не договариваешь!
Спустя 2 минуты, 53 секунды (8.05.2012 - 12:24) jalvar написал(а):
индекс.пхп
Соедининеие 2вух классов инклудом
<?
session_start();
include './bin/modules/plugins/cookies.php'; //Составляем Cookies которые потребуются в работе
include './includes/config.php'; //Загружаем данные с бд
include './includes/mysql.php'; //Подключаемся к бд
include './includes/system.php'; //Подключаемся к бд
$SYS->close();
?>
<?
class mysql
{
var $connect; //Соединение с бд
var $config; //Конфигурация
var $Qnum;
private function __construct($host,$user,$password,$db)
{
$this->connect=@mysql_connect($host,$user,$password) or die("Ошибка! MYSQL соединение не установлено!");
@mysql_select_db($db,$connect) or die("Ошибка! База Данных не выбрана!");
$this->config();
}
//Составляем запрос
public function query($sql)
{
$query = mysql_query($sql) or die("BAD SQL QUERY:<br>".mysql_error()."<br>SQL: ".$sql);
$this->Qnum++;
return $query;
}
//Вызываем конфигурацию
public function config()
{
$query = $this->query("SELECT * FROM `config` LIMIT 1");
$config->mysql_fetch_assoc($query);
}
public function close()
{
mysql_close($this->connect);
}
}
?>
Соедининеие 2вух классов инклудом
<?
class SYS extends mysql {
function __construct()
{
if(!file_exists("./bin/template/".$this->config['template']."/index.php"))
{
exit("TEMPLATE ERROR:<br>BAD INCLUDE:<br>template/".$this->config['template']);
}
}
}
$SYS = new SYS();
?>
Спустя 1 час, 40 минут, 12 секунд (8.05.2012 - 14:04) jalvar написал(а):
Эм. люди, кто поможет
Спустя 17 минут, 47 секунд (8.05.2012 - 14:22) Placido написал(а):
А где parent::__construct() в конструкторе SYS?
<?
class SYS extends mysql {
function __construct()
{
if(!file_exists("./bin/template/".$this->config['template']."/index.php"))
{
exit("TEMPLATE ERROR:<br>BAD INCLUDE:<br>template/".$this->config['template']);
}
parent::__construct();
}
}
Спустя 12 минут, 20 секунд (8.05.2012 - 14:34) killer8080 написал(а):
И аргументы передать конструктору то же не мешает

Спустя 20 минут, 6 секунд (8.05.2012 - 14:54) Placido написал(а):
Цитата (killer8080 @ 8.05.2012 - 15:34) |
И аргументы передать конструктору то же не мешает ![]() |
Да да)
Спустя 19 минут, 10 секунд (8.05.2012 - 15:13) jalvar написал(а):
Можно понятней.
Спустя 41 минута, 9 секунд (8.05.2012 - 15:54) Placido написал(а):
Цитата (jalvar @ 8.05.2012 - 16:13) |
Можно понятней. |
По поводу передачи аргументов конструктору?
function __construct($host,$user,$password,$db)Так понятней?
{
...
parent::__construct($host,$user,$password,$db)
}
_____________
jallvar.oxnull.net - мой блог.