如何在OO Php中将Mysqli结果转换为数组
我想从数据库中的表中检索数据,并将结果显示在下表中的数组中 数组(“1”=>“值1”,“2”=>“值2”) 这是我尝试使用的函数,但在尝试显示数组时出错。拜托,我需要帮助。我是OO Php新手如何在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
<?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;