我正在编写一个新类来处理我的数据库,我真的很想实现一些我在编程时通常做的自定义功能。 其中一个功能是可以从查询两个字段中获取,如下所示:
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
中。只要查询返回任何行,在这样的 while 循环条件下执行该行将是无限的。
您可以先获取结果,然后迭代它们以生成输出。此外,它看起来像result()
返回一个对象数组,因此您可能想要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]
。
我建议你使用:
$result = $this->db->query($query);
然后做:
foreach ($result->result() as $row) {
echo $row->brandId;
}
您可以阅读文档以获取有关查询结果的更多信息。
此处为文档:https://www.codeigniter.com/user_guide/database/results.html