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() как к методу своего класса.
ДоХтор, внутри класса пользуй this или self
ну и синглтон сразу лучше сделай
# Str@nnik (18.04.2016 / 19:30)
ДоХтор, Ты обращаешься к close() как к методу своего класса.
Да, я вижу, что его нет в описании класса. Но как мне его получить? (его, и все остальные методы, которые доступны при первом создании объекта) Иначе говоря, как правильно воткнуть объект в конструктор, чтобы все эти mysql-методы были доступны?
ДоХтор, наследуйся от него
Myclass extends Mysqli {}
# Koenig (18.04.2016 / 19:36)
ДоХтор, внутри класса пользуй this или self
ну и синглтон сразу лучше сделай
Не много не понял ... Мне ведь новый объект внутри класса надо создать, а для этого используется только оператор new, верно?
# Koenig (18.04.2016 / 19:39)
ДоХтор, наследуйся от него
Myclass extends Mysqli {}
А, гг, спасибо ))) С меня +