从数据库装入全局变量问题
本帖最后由 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中, 然后在用的时候直接取出.
http://www.hiceon.com/index.php/2012/codeigniter-setting-advanced-configuration/
你刚好赶上了。 我的想法和你不谋而合, 先检查要找的内容是否已经装在$Config['system_settings']数组里, 如果有就直接返回需要的内容, 如果没有就从从数据库里面读取.
估计这个办法最省心. ephd 发表于 2012-9-13 07:10 static/image/common/back.gif
我的想法和你不谋而合, 先检查要找的内容是否已经装在$Config['system_settings']数组里, 如果有就直接返回 ...
:lol 英雄所见略同
页:
[1]