Задать вопрос
fl3xice
@fl3xice
Люблю что-то придумывать

Не понимаю что не так в моём классе для работы с БД?

<?php


namespace App\Core;


use App\Core\Databases\DB;
use App\Core\Databases\MySQL;
use App\Core\Promises\CorePromise;
use App\Core\Promises\ExtremeCorePromise;
use GuzzleHttp\Psr7\Request;

class Core
{

    /**
     * @var ExtremeCorePromise
     */
    private $promise;

    /**
     * @var DB | null
     */
    private $DB = null;

    public function __construct()
    {
        $CorePromise = new CorePromise();
        $CorePromise->setRequest(
            new Request(
            $_SERVER['REQUEST_METHOD'],
            $_SERVER['HTTP_HOST'],
            getallheaders()
        ));

        $CorePromise->setConfig(new Configuration());

        $this->promise = new ExtremeCorePromise($CorePromise);
        if ($this->promise->getConfig()->getPromise()->getDatabases()->getMySQL()->getEnabled())
        {
            $this->DB = new DB(new MySQL($this));
        }
    }


    /**
     * @return DB
     */
    public function getDB()
    {
        return $this->DB;
    }


    /**
     * @return ExtremeCorePromise
     */
    public function getPromise() : ExtremeCorePromise
    {
        return $this->promise;
    }
}


Код который выводит данные
var_dump($Core->getDB()->getRow('SELECT * FROM users WHERE id= :id'), [
    "id" => 0
]);


Выдаёт вот это:

array(0) { } array(1) { ["id"]=> int(0) }


сама бд
5ef9508b7deb7734662436.jpeg
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Подозреваю, что ошибка где-то здесь
$CorePromise->setConfig(new Configuration());

$this->promise = new ExtremeCorePromise($CorePromise);
if ($this->promise->getConfig()->getPromise()->getDatabases()->getMySQL()->getEnabled()) {
    $this->DB = new DB(new MySQL($this));
}

Так как вы в качестве конфига передаёте новый экземпляр класса без самих данных. Трудно понять, что у вас не так. Я вижу, что для работы с БД вы используете свои классы. Как всё это реализовано останься только догадываться.

Так же, возможно, что-то не так в фильтрации условия и работы метода:
$Core->getDB()->getRow("...");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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