@bezvozni

Как использовать $pdo внутри функции (без global)?

Желательно без отсылок к сложным материям, типа ооп, патернам проектирования, внедрения зависимостей, синглтонов и т.п., к чему непонятно даже как подступиться. По сути нужно просто подготовить и выполнить mysql запрос внутри функции. Или такая необходимость это неизбежно сигнал неверного проектирования приложения?

upd
увидел похожий вопрос, там
Вывод: если вам вдруг нужна global переменная или синглтон, значит вы где-то допустили ошибку в проектировании.
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Аргумент функции
2) Статический класс

сложным материям, типа ооп, патернам проектирования, внедрения зависимостей, синглтонов и т.п.

Или такая необходимость это неизбежно сигнал неверного проектирования приложения?

Как то вообще первая цитата со второй не в ладах... Ясень пень у вас неверное проектирование, если паттерны и ооп у вас сложные материи...
Ответ написан
@bezvozni Автор вопроса
пока пошёл таким путём, в классе пишу всё что связано с базой
$pdo = new PDO($dsn, $user, $pass, $opt);

class oop
{
  
  function __construct($pdo)
  {
    $this->pdo = $pdo;
  }

  function anythingForDb($arg)
  {
    $q = "SELECT * FROM table WHERE field=?";
    $test = $this->pdo->prepare($q);
    $test->execute([$arg]);
    return $test->fetchAll();
  }
}

$oop = new oop($pdo);

print_r($oop->anythingForDb('test'));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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