У Вас есть один вопрос? - Тогда задайте его тут! new!

Тема закрыта
223K
.

fanatos, Сейчас проверю

.

fanatos, Как это поле в рнрАдмин создать ?)))

.
Менделеев
# MAH9IK (18.04.2016 / 17:58)
fanatos, Как это поле в рнрАдмин создать ?)))
Структура и там добавить
.

Требуется создать подключение к БД в конструкторе класса. Как правильно это реализовать? В мануале описан такой

вариант (+/-)
$mysqli = new mysqli('localhost', 'root', 'pass', 'name');

if (mysqli_connect_errno()) {
    die('Ошибка подключения: '. mysqli_connect_error());
}

echo 'Соединение установлено... ' . $mysqli->host_info . "\n";

$mysqli->close();
Но если например создать объект внутри класса (+/-)
class GbookDB
{
protected $_db;

public function __construct($db_host, $db_user, $db_pass, $db_name) {
$this->_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
}

public function __destruct() {
unset($this->_db);
}
}

$mysqli = new GbookDB('localhost', 'root', 'pass', 'name');

if (mysqli_connect_errno()) {
    die('Ошибка подключения: '. mysqli_connect_error());
}

echo 'Соединение установлено... ' . $mysqli->host_info . "\n";

$mysqli->close();
То в результате получаю :

Соединение установлено...
Fatal error: Call to undefined method GbookDB::close()


Как его правильно воткнуть в класс?
.

ДоХтор, Ты обращаешься к close() как к методу своего класса.

.
(\/)____o_O____(\/)

ДоХтор, внутри класса пользуй this или self
ну и синглтон сразу лучше сделай

.
# Str@nnik (18.04.2016 / 19:30)
ДоХтор, Ты обращаешься к close() как к методу своего класса.
Да, я вижу, что его нет в описании класса. Но как мне его получить? (его, и все остальные методы, которые доступны при первом создании объекта) Иначе говоря, как правильно воткнуть объект в конструктор, чтобы все эти mysql-методы были доступны?
.
(\/)____o_O____(\/)

ДоХтор, наследуйся от него
Myclass extends Mysqli {}

.
# Koenig (18.04.2016 / 19:36)
ДоХтор, внутри класса пользуй this или self
ну и синглтон сразу лучше сделай
Не много не понял ... Мне ведь новый объект внутри класса надо создать, а для этого используется только оператор new, верно?
.
# Koenig (18.04.2016 / 19:39)
ДоХтор, наследуйся от него
Myclass extends Mysqli {}
А, гг, спасибо ))) С меня +
Всего: 6714