从查询结果到关联数组 Codeigniter

From Query Result to Associative Array Codeigniter

我正在编写一个新的 class 来处理我的数据库,我真的很想实现一些我通常在编程时执行的自定义功能。 这些功能之一是可以从查询中获取两个字段,如下所示:

SELECT brandId,brandName FROM Brands;

结果是一个关联数组索引为我的 brandId 并且值为 brandName.

这是我到目前为止尝试过的方法,但应用程序似乎卡住了,无法产生任何错误消息,只是加载不完

function getColHash($query){
    $output = array();
    while ($result = $this->query($query)->result()) {
        $output[$result[0]] = $result[1];

    }
    return $output;
  }

一些提示将不胜感激

$result = $this->query($query)->result(); 执行查询并将所有结果提取到 $result。只要查询 returns 任何行,在像这样的 while 循环条件下执行它将是无限的。

你可以先得到结果,然后迭代它们来生成你的输出。另外,it looks like result() returns an array of objects,所以您可能需要 result_array()

$results = $this->query($query)->result_array();

foreach ($results as $result) {
    $output[$result[0]] = $result[1];
}

我不确定 Codeigniter returns 是否会生成具有数字索引和字符串索引的数组,因此您可能需要设置 $result = array_values($result) 才能引用 $result[0]$result[1].

我推荐你使用:

$result = $this->db->query($query);

然后做:

foreach ($result->result() as $row) {
   echo $row->brandId;
}

您可以阅读文档以获取有关查询结果的更多信息。

这里是文档:https://www.codeigniter.com/user_guide/database/results.html