Intereting Posts

var_dump результата дает нулевое значение. Но более глубокая проверка возвращает целое число

Возможный дубликат:
Новый объект Mysqli – Null

Я только начал с создания моего класса базы данных для моей MVC-структуры. При создании этого я экспериментирую с простыми запросами и таблицами, чтобы он работал правильно.

Я пытался запросить следующее:

SELECT * FROM mvc_test

Это должно возвращать 3 строки:

1 | контрольная работа

2 | test2

3 | test3

Я использую следующий метод для запроса:

<?php $this->result = $this->conn->query($this->q); ?> 

Где $ this-> conn:

 <?php $this->conn = new mysqli($this->reg->conf->database['host'], $this->reg->conf->database['user'], $this->reg->conf->database['password'], $this->reg->conf->database['database']); ?> 

Где $ this-> reg-> conf-> database содержит все значения для хоста, базы данных и т. Д. Это работает, у меня есть соединение.

Теперь, когда я var_dump результат следующим образом:

 <?php var_dump($this->result); ?> 

Я получаю это:

Объект (mysqli_result) [9]

public 'current_field' => null

public 'field_count' => null

public 'lengths' => null

public 'num_rows' => null

public 'type' => null

Но, как говорилось ранее, он должен содержать не менее 3 строк, поэтому я ожидал бы, что num_rows будет «3».

Теперь, когда я var_dump num_rows результата, вот так:

 <?php var_dump($this->result->num_rows); ?> 

Я получаю ответ «int 3».

Вывод: в первом var_dump он равен нулю, но с более глубоким контролем я получаю 3. Так что он читает 3 строки. Когда я добавляю еще одну строку (4-й), она возвращает 4, как ожидалось.

Мой вопрос: почему var_dump работает неправильно? Почему он сначала говорит «нуль», но с более глубоким контролем он имеет значение.

Спасибо заранее, я действительно борюсь с этим, так как у меня тоже нет ошибок.

Объект реализуется «лениво», т. Е. Он не извлекает данные с сервера до тех пор, пока он не понадобится (т.е. вы получаете доступ к чему-либо из объекта результата).

var_dump , похоже, не запускает свойство getters, поэтому они отображаются как null .