Как продолжить цепь запросов в 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∗FROMusersWHEREid=123";returnsql = "SELECT * FROM users WHERE id = 123"; return sql="SELECT∗FROMusersWHEREid=123";returnsql; } } class B extends A { public function add($sql) { return $sql .= " AND name = 'Alex'"; } } $a = new A; b=newB();b = new B(); b=newB();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∗FROMusersWHEREid=123";returnsql = "SELECT * FROM users WHERE id = 123";
return sql="SELECT∗FROMusersWHEREid=123";returnsql;
}
}
class B extends A {
public function add($sql) {
return $sql .= " AND name = 'Alex'";
}
}
$a = new A;
b=newB();b = new B();
b=newB();sql = $a->get();
$sql = $b->add($sql);
echo $sql;
Теперь ваш код должен работать правильно. Он создает запрос "SELECT * FROM users WHERE id = 123 AND name = 'Alex'".