如何在OO Php中将Mysqli结果转换为数组

如何在OO Php中将Mysqli结果转换为数组,php,mysql,arrays,oop,mysqli,Php,Mysql,Arrays,Oop,Mysqli,我想从数据库中的表中检索数据,并将结果显示在下表中的数组中 数组(“1”=>“值1”,“2”=>“值2”) 这是我尝试使用的函数,但在尝试显示数组时出错。拜托,我需要帮助。我是OO Php新手 <?php class query { public function listfields (){ $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT); wh

我想从数据库中的表中检索数据,并将结果显示在下表中的数组中

数组(“1”=>“值1”,“2”=>“值2”) 这是我尝试使用的函数,但在尝试显示数组时出错。拜托,我需要帮助。我是OO Php新手

<?php
class query {

public function listfields (){
    $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
    $this->fields[$row["id"]] = $row["name"];
    }
    $result->free();

}

public function fields(){
return $this->fields;   
}
        }


$list = new query;
$list->listfields();
$field1 = $list->fields();

echo $field1;
?>

试试这个

<?php

class query {

public function listfields (){

 $fields = array();
 $rowcnt =1;
 $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
      $this->fields[$row["id"]] = $row["name"];
     //$this->fields[$rowcnt] = $row["name"];   // if you want different indexing.
      $rowcnt++;
 }
 $result->free();
}

public function fields(){
    return $this->fields;   
}
}
$list = new query();
$list->listfields();
$field1 = $list->fields();
var_dump($field1);
?>

您需要一个可访问的属性字段,而不是函数字段。 此外,我建议使用getter和setter而不是公共属性,我相信您会发现如何使用

这将以数组形式返回数据(“1”=>“值1”、“2”=>“值2”)


发布您收到的错误通常非常有用。@muhammad zeeshan感谢您的回复。print_r($field1)现在以如下形式返回数组:数组([1]=>工程[6]=>物理科学[2]=>技术);有没有办法把它转换成这种形式的数组(“1”=>“工程”,“6”=>“物理科学”)那么[2]=>技术呢?@Muhammad Zeeshan很抱歉,它也包括在数组中(“1”=>“工程”,“6”=>“物理科学”,“2”=>“技术”)@andychukse:它已经是一个数组了,你说的皈依是什么意思?@MuhammadZeeshan我做了一些改变。我进入了javascript+php模式。:)
class query {

public $fields;

public function fillfields ()
{
    $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
         $this->fields[] = $row["name"];
    }
    $result->free();
}

$list = new query;
$list->fillfields();
$field1 = $list->fields[1];

echo $field1;