Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从mysql读取列时尝试获取非对象的属性_Php_Mysql_Mysqli - Fatal编程技术网

Php 从mysql读取列时尝试获取非对象的属性

Php 从mysql读取列时尝试获取非对象的属性,php,mysql,mysqli,Php,Mysql,Mysqli,我试图用php和mysqli阅读mysql中的一个专栏,但是我得到了这个错误注意:尝试获取非对象的属性 PHP 说实话,我遗漏了什么?我没有很好地理解对象一章。$db->query返回一个无法直接迭代的结果对象。试着这样做: $subscribers = $db->query('SELECT * FROM subscribers'); while ($subscriber = $subscribers->fetch_assoc()) { $name = $subscriber

我试图用php和mysqli阅读mysql中的一个专栏,但是我得到了这个错误<代码>注意:尝试获取非对象的属性

PHP


说实话,我遗漏了什么?我没有很好地理解对象一章。

$db->query
返回一个无法直接迭代的结果对象。试着这样做:

$subscribers = $db->query('SELECT * FROM subscribers');
while ($subscriber = $subscribers->fetch_assoc()) {
    $name = $subscriber['name']; // name is the name of the column
    echo $name;
}

因为您应该获取结果:

<?php
      $db = new mysqli(HOST, USER, PASSWORD, DATABASE);
      global $db;
      $subscribers = $db->query('SELECT * FROM subscribers');

      while ($subscriber = $subscribers->fetch_object()) {
          $name = $subscriber->name; // name is the name of the column
          echo $name;
      }

@AbhikChakraborty,但是在foreach中还是有这样做的方法吗?您需要使用循环作为对象获取记录,因为光标指针将设置为记录集中的第一条记录。您最好学习如何遵循手动操作,而不是像这样毫无意义的“预感”
$subscribers = $db->query('SELECT * FROM subscribers');
while ($subscriber = $subscribers->fetch_assoc()) {
    $name = $subscriber['name']; // name is the name of the column
    echo $name;
}
<?php
      $db = new mysqli(HOST, USER, PASSWORD, DATABASE);
      global $db;
      $subscribers = $db->query('SELECT * FROM subscribers');

      while ($subscriber = $subscribers->fetch_object()) {
          $name = $subscriber->name; // name is the name of the column
          echo $name;
      }