结果给人的var_dump空值。 但更深层次的检查返回一个整数[复制](var_dump of

2019-07-30 04:52发布

可能重复:
新的mysqli对象为空

我刚开始建设我的数据库类为我的MVC框架。 虽然为了建设这个我用简单的查询和表试验,以使其正常工作。

我试图查询以下:

SELECT * FROM mvc_test

这应返回3行:

1 | 测试

2 | TEST2

3 | TEST3

我用下面的方法来查询:

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

其中$这个 - > 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']);
?>

其中$这个 - > REG-> conf->数据库包含主机的所有值,数据库等。这工作,我有一个连接。

现在,当我的var_dump的结果是这样的:

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

我得到这个:

对象(mysqli_result)[9]

公共 'current_field'=>空

公共 'FIELD_COUNT'=>空

公共“长度” =>空

公共 'NUM_ROWS'=>空

公共“类型” =>空

但是,正如前面所说,应该至少包含3排,所以我希望NUM_ROWS是“3”。

现在,当我的var_dump这样的结果的NUM_ROWS:

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

我得到一个“诠释3”作为响应。

结论:在第一个的var_dump它为空,但更深层次的检查,我收到了3所以它读3行。 当我添加另一行(第4),如预期它返回一个4。

我的问题是:为什么不工作的var_dump正常? 为什么它说,在第一个空,但更深层次的检查它确实有一个值。

在此先感谢,我真的与这一个挣扎,因为我没有得到任何错误也是如此。

Answer 1:

对象实现“懒惰”,即它,直到它的实际需要(即你从结果对象访问的东西)不从服务器获取数据。

var_dump似乎没有触发属性获取,使他们显示为null



文章来源: var_dump of result gives null value. But deeper inspection returns a integer [duplicate]
标签: php mysqli