@yellow_pus

Как продолжить цепь запросов в 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();

Вот, на последней строчке я пробую добавить к прежнему запросу доп. условие
  • Вопрос задан
  • 122 просмотра
Решения вопроса 2
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
<?php
class A
{
	protected $sql = null;
	
	public function setSQL()
    {
        $this->sql = "SELECT * FROM users WHERE id = 123";
        return $this;
    }
	
	public function getSQL()
    {
        return $this->sql;
    }
}

class B extends A
{
    public function addSQL()
    {
        $this->sql .= " AND name = 'Alex'";
		
		return $this;
    }
}
$a = new A();
$b = new B();

echo $b->setSQL()->addSQL()->getSQL();


PHP class test
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
Может, конечно поздно, но вдруг

Смотри вкладку "пример из реальной жизни"
https://refactoring.guru/ru/design-patterns/builde...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Если отбросить всю не относящуюся к вопросу чепуху, типа каких-то "внутренних запросов"(?!), то ответ сводится цепочке вызовов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы