Как продолжить цепь запросов в 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(); Вот, на последней строчке я пробую добавить к прежнему запросу доп. условие
В вашем коде есть несколько ошибок. Во-первых, метод 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'".
В вашем коде есть несколько ошибок. Во-первых, метод 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'".