gauspican 发表于 2010-9-20 13:24:06

请教:helper文件中load->library报错及foreach问题

1、想定义一个全局变量,需要从DB中取数据,按论坛所说建议定义在helper中。
在helper中load->library('database'),但DB相关语句仍不能执行,有什么问题吗?

2、foreach按手册定义,是操作数组的一个拷贝,不过试验以下语句:
$query = $this->db->query(xxx)
foreach($query->result() as $row) {
   $row->name = _myDeal($row->name);
}
return $query->result();

会发现,$row->name实质已经被_myDeal处理过了,是否矛盾?

kinglike 发表于 2010-9-20 13:31:15

定义全局变量。我比较喜欢用config文件保存,减少数据库的读取。

gauspican 发表于 2010-9-20 13:33:42

因为数据比较多,我是先存到DB中,再缓存到config文件,如果config文件损坏或有更新则从DB中取数据重新生成。

Hex 发表于 2010-9-20 14:04:41

在 helper 需要用 get_instance() 才可以 load 类库和数据库。
$CI =& get_instance();
$CI->load->database();

gauspican 发表于 2010-9-20 15:20:10

多谢Hex、Kinglike!

补充一句,方便后来者:

$CI =& get_instance();
$CI->load->database();

$query = $CI->db->query(xxx)
注意query这一句是$CI,而不是大家常用的$this。

Hex 发表于 2010-9-20 15:44:16

$CI 随意了,只是个变量而已,$a $b 都行。。。

qingbofish 发表于 2012-8-2 13:30:55

我使用$CI = & get_instance ();的时候页面显示空白,一点出错信息也没有。
页: [1]
查看完整版本: 请教:helper文件中load->library报错及foreach问题