Как продолжить цепь запросов в php? На данный момент учу MySQL и заметил, что мы можем обращаться к "внутренним запросам", как в этом примере:$mysqli->query("CREATE TABLE test(id INT, label TEXT)"); Насколько я знаю, такой запрос можно построить с помощью ООП. Я попробовал, но у меня ничего не получилось и я запутался, подскажите, где ошибка в моей "конструкции"class A { public function get() { $sql = "SELECT * FROM users WHERE id = 123"; return $sql; } } class B extends A { public function add($sql) { return $sql .= " AND name = 'Alex'"; } } $a = new A(); $b = new B(); echo $b->get()->add(); Вот, на последней строчке я пробую добавить к прежнему запросу доп. условие

30 Ноя 2021 в 19:59
287 +1
0
Ответы
1

В вашем коде есть несколько ошибок. Во-первых, метод get() в классе B не существует, поэтому вы не можете вызвать его. Вместо этого вы должны вызвать метод get() из класса A. Во-вторых, метод add() должен принимать значение переменной, а не SQL запрос. Вот исправленный код:

class A {
public function get() {
$sql = "SELECT * FROM users WHERE id = 123";
return $sql;
}
}
class B extends A {
public function add($sql) {
return $sql .= " AND name = 'Alex'";
}
}
$a = new A();
$b = new B();
$sql = $a->get();
$sql = $b->add($sql);
echo $sql;

Теперь ваш код должен работать правильно. Он создает запрос "SELECT * FROM users WHERE id = 123 AND name = 'Alex'".

17 Апр в 08:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 956 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир