Что я делаю неправильно? Создаю класс 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
158 +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 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир