用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3045|回复: 3
收起左侧

从数据库装入全局变量问题

[复制链接]
发表于 2012-9-13 02:44:44 | 显示全部楼层 |阅读模式
本帖最后由 ephd 于 2012-9-13 02:47 编辑

我在Config.php里定义了一行 $config['system_settings'] = array();
想在初始化的时候从数据库中读入一个数据表, 然后写入$config['system_settings'] .

但是发现无论在哪里放读数据库代码都不合适, 尝试在Index.php最后面加入下面代码.
======================
$CI = & get_instance();
$Query = $CI ->db ->query('Select * from ts_settings');
if ($Query->num_rows()>0){
        $config = array();
        foreach ($Query->result() as $rows){   //read out all system parameters
           $config[$rows ->para_name] = $rows ->value;
    }
    $CI->config->set_item('system_settings', $config);  //pass to global config array
}
======================
我的测试模块写在 controllers/login.php里面, 当我运行 http://localhost/index.php/login/test 的时候, 上面这段代码居然是在页面被装入以后才执行.

上面代码如果写在HELPER里面则会提示 Undefined property: login:db 错误, 相信是因为数据库模块在helpers装入后才被初始化的. 现在不知道应该如何做才是最好的. 很想知道大家遇到这种问题如何解决.

我的要求其实很简单, 就是从数据表里读出所有预设的全局变量存入$config中, 然后在用的时候直接取出.


发表于 2012-9-13 05:23:25 | 显示全部楼层
 楼主| 发表于 2012-9-13 07:10:41 | 显示全部楼层
我的想法和你不谋而合, 先检查要找的内容是否已经装在$Config['system_settings']数组里, 如果有就直接返回需要的内容, 如果没有就从从数据库里面读取.

估计这个办法最省心.
发表于 2012-9-13 07:24:21 | 显示全部楼层
ephd 发表于 2012-9-13 07:10
我的想法和你不谋而合, 先检查要找的内容是否已经装在$Config['system_settings']数组里, 如果有就直接返回 ...

英雄所见略同

本版积分规则