|
|
|
| есть класс
#####################################################
#stalxed lib. version 0.1 #
# POWERED BY st@l][ED #
#___________________________________________________#
# Просто помню в малолетке занятия,#
# Просто знаю кто где есть и где я!#
# Да просто в жизни у воров есть понятия#
# Точно также как в законе статья.#
#####################################################
class project{
var $settings = array(
'server' => 'localhost',
'login' => 'root',
'pass' => '',
'bdname' => 'project',
'limit' => '100',
);
.............................................
function project(){
$server = $this->settings['server'];
$login= $this->settings['login'];
$pass = $this->settings['pass'];
$bdname = $this->settings['bdname'];
$bdlink=mysql_connect($server, $login, $pass) or die ("Ошибка соединения с базой данных<br><br>Ошибка: ".mysql_error());
............................................
return $bdlink;
}
function error_bd(){
if(mysql_query("CREATE TABLE `words_auto1x` (
`id` int(255) NOT NULL auto_increment,
`word` varchar(255) character set cp1251 collate cp1251_bin NOT NULL,
`prosmotrov` int(255) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
")){echo '1';} else {echo '0';}
#а дальше ошибка!!! естественно переменной $dblink нет! теперь вопрос на кого ссылаться нам?
echo mysql_error($bdlink);
}
|
| |
|
|
|
|
|
|
|
для: tricket
(09.08.2007 в 18:49)
| | как-то странно у Вас конструктор устроен.
Значение возвращает.
К тому же тип этого значения никакого отношения к классу не имеет.
Сохраняйте идентификатор соединения в поле класса - потом пользуйтесь. | |
|
|
|
|
|
|
|
для: Trianon
(09.08.2007 в 19:35)
| | <Значение возвращает.
это так тестовый вариант...
<Сохраняйте идентификатор соединения в поле класса - потом пользуйтесь.
я новичок в ООП. не подкинишь код как это сделать? | |
|
|
|
|
|
|
|
для: tricket
(09.08.2007 в 18:49)
| | $bdlink остаётся в конструкторе и не доступен в других частях класса, так как это локальная переменная. Если хотите организовать динамический член класса, следует обращаться к нему через префикс $this->
<?php
...
$this->bdlink=mysql_connect($server, $login, $pass)
or die ("Ошибка соединения с базой данных<br><br>Ошибка: ".mysql_error());
...
?>
|
Соответственно в методе error_bd() обращение к динамическому члену также должно происходить через $this->
<?php
...
echo mysql_error($this->bdlink);
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.08.2007 в 10:43)
| | хм понял! спасибо! но возник ещё вопрос!
что будет если у нас например объявлена переменная $bdlink
class project{
var $settings = array(
'server' => 'localhost', // сервер БД
'login' => 'root', // имя пользователя
'pass' => '', // пароль БД
'bdname' => 'parserya',
'limit' => '100', // имя БД
);
var $bdlink=null;
|
а потом мы её используем..
function project(){
#вырезанно...
$this->bdlink=mysql_connect($server, $login, $pass) or die ("Ошибка соединения с базой данных<br><br>Ошибка: ".mysql_error());
#вырезанно
|
а дальше создадим функцию
function bdlink(){
echo "что будет?!";
}
|
| |
|
|
|
|
|
|
|
для: tricket
(10.08.2007 в 11:51)
| | Ничего страшного не произойдёт - имена функций и переменных не пересекаются. | |
|
|
|