У меня возникла проблема с использованием объекта mysqli, который был создан в одном методе моего класса во втором методе класса. Может ли кто-нибудь помочь мне понять, что я могу делать неправильно? Вот как выглядят мои методы из двух классов:Объект класса PHP внутри метода
function connect() {
$mysqli = new mysqli($this->host, $this->user, $this->pass, $this->db);
if($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
else {
echo 'Successful';
}
}
public function query($sql) {
$this->sql = $sql;
$mysqli->connect();
$result = $mysqli->query($this->sql);
while ($row = $result->fetch_assoc()) {
printf ("$s (%s)\n", $row['name']);
echo "<br>";
}
$result->free();
$mysqli->close();
}
Я думаю, что моя проблема заключается в том, чтобы создать экземпляр объекта.
**** ОБНОВЛЕНО: Это в настоящее время весь класс, что у меня есть и сценарий умирает при попытке выполнить строку внутри метода запроса:
$this->mysqli->connect();
class database {
public $host = "host";
public $user = "user";
public $pass = "pw";
public $db = "dbname";
public $sql;
private $mysqli;
function __construct() {
echo "new class object created";
echo "<br><br>";
}
function connect() {
$this->mysqli = new mysqli($this->host, $this->user, $this->pass, $this->db);
if($this->mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
else {
echo 'Successful';
}
}
public function query($sql) {
$this->sql = $sql;
echo "test1";
$this->mysqli->connect();
echo "test2";
$result = $this->mysqli->query($this->sql);
echo "test3";
while ($row = $result->fetch_assoc()) {
printf ("$s (%s)\n", $row['name']);
echo "<br>";
}
$result->free();
$this->mysqli->close();
}
}
echo "test2"; does not execute.
Спасибо @Fred, всегда получил мою спину ;-) – Darren
Si, signore ;-) –
Спасибо за ответ ребята. На самом деле у меня была такая настройка вначале. Теперь я внедрил предложенные вами изменения. Однако у меня все еще есть проблемы с этим. Сценарий, кажется, умирает, когда функция запроса вызывается сразу после $ this-> mysqli-> query ($ this-> sql) –