Что я делаю неправильно? Создаю класс DBclass DB{
public $mysqli;
function __construct()
{
$this->mysqli=new mysqli("localhost","root","","bolhbe");
return $this->mysqli;
}
}
Пытаюсь сделать так include ("DB.php");
class Categories{
public function getCategories(){
$db=new DB();
$query="use categories";
$db->query();
$query="SELECT * FROM 'categories'";
}
}
IDE говорить что метода query() у объекта DB нет. Он ведь возвращает : new mysqli("localhost","root","","bolhbe");
почему у него нет встроенного метода query()?

21 Авг 2019 в 06:59
194 +1
0
Ответы
1

Проблема здесь заключается в том, что вы не определили метод query() в вашем классе DB. Метод query() - это метод класса mysqli, а не вашего собственного класса DB.

Чтобы исправить это, вы можете добавить метод query() к вашему классу DB, который будет вызывать метод query() объекта mysqli:

class DB{
public $mysqli;
function __construct()
{
$this->mysqli=new mysqli("localhost","root","","bolhbe");
return $this->mysqli;
}
public function query($query){
return $this->mysqli->query($query);
}
}

Теперь вы можете вызывать метод query() в вашем классе Categories:

include ("DB.php");
class Categories{
public function getCategories(){
$db=new DB();
$query="SELECT * FROM categories";
$result = $db->query($query);
// обработка результата запроса
}
}

Теперь при вызове метода query() у объекта DB не должно возникать ошибок, и ваш запрос должен выполняться корректно.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир