Pull to refresh

Comments 5

$result = $query->execute();


Что-то не похоже что будет тут массив с результатом.

По теме в целом, я когда писал похожее, использовал 3 класса для удобства: Класс подключения, Класс выборки, Класс работы с результатом
Класс подключения по сути делает все тоже самое что и у вас с insert,update,select
только $obj->select($table) — у меня возвращал новый объект выборки, а в нем уже execute(), а он в свою очередь объект работы с результатом (getAll(), get(), getMap(), getPair(), getCol())
$result = $query->execute();

Что-то не похоже что будет тут массив с результатом.

Нет, всё верно. Командой execute мы как раз выполним запрос и получим результат.
public function execute()
    {
        // pass the object so execute compiles it by itself
        return $this->last_result = $this->getConnection()->query($this->compile()->getCompiled());
    }

по исходникам, вроде как ресурс на результат,
т.е. после $resource = $query->execute();
разве нет необходимости в:

$results = array();
while ($row = $resource->fetch_assoc()) {
$results[] = $row;
}

?
Нет, мы уже будем иметь готовый ассоциативный массив вида:
                array(2) {
                    [0]=> array(10) {
                        ["id"]=> string(2) "1"
                    }
                    [1]=> array(10) {
                        ["id"]=> string(2) "2"
                    }
                }
Если загляните внутрь функции query
$this->getConnection()->query($this->compile()->getCompiled());
То там как раз и найдёте fetch_assoc.
Sign up to leave a comment.

Articles