我正在编写一个新类来处理我的数据库,我真的很想实现一些我在编程时通常会做的自定义功能。 这些功能之一是可以从查询两个字段中获取内容,如下所示:
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;
}
一些提示将不胜感激
答案 0 :(得分:1)
$result = $this->query($query)->result();
执行查询并将所有结果提取到$result
中。只要查询返回任何行,在类似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是否返回带有数字索引和字符串索引的结果数组,因此您可能需要设置$result = array_values($result)
才能引用$result[0]
和$result[1]
。
答案 1 :(得分:0)
我建议您使用:
$result = $this->db->query($query);
然后执行:
foreach ($result->result() as $row) {
echo $row->brandId;
}
您可以阅读文档以获取有关查询结果的更多信息。
此处是文档:https://www.codeigniter.com/user_guide/database/results.html