【问题标题】:config data stored in database配置数据存储在数据库中
【发布时间】:2011-08-05 09:40:21
【问题描述】:

我可能完全找错了树,如果这不是我应该做的事情,请原谅我。

我的数据库中有一个配置表,用于保存我网站的配置详细信息。我想将此数据加载到代码点火器的 config.php 文件中吗?

这是我应该做的还是完全错误的?

如果我在 config.php 文件的顶部放置一个数据库调用,是否会在每次有人加载网站时或仅在第一次加载时调用它?

对不起,如果这听起来完全愚蠢,我有点困惑。

编辑

我不是指数据库详细信息,例如想要存储诸如每页显示的帖子数量之类的内容。我正在创建的脚本将在多个服务器上使用,例如每页的帖子数量需要是可编辑的。我可以将其加载到会话中,但我认为将其加载为常量*?在配置文件中会是一个更好的主意。

【问题讨论】:

    标签: database codeigniter config


    【解决方案1】:

    这是我的做法:

    首先,我们的模型:

    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
    

    .

    class Prefs extends CI_Model
    {
        function __construct()
        {
            parent::__construct();      
            $pre = array();
            $CI = &get_instance();
    
            if ($this->config->item("useDatabaseConfig")) {
                $pr = $this->db->get("settings")->result();     
                foreach($pr as $p)
                {
                    $pre[addslashes($p->key)] = addslashes($p->value);
                }       
            }
            else
            {
                $pre = (object) $CI->config->config;
            }   
            $CI->pref = (object) $pre;      
        } 
    }
    
    • 自动加载此模型。
    • 在您的 config/config.php 中,添加这一行(或另一个自定义行,如果您使用的话):$config["useDatabaseConfig"] = true;

    在您的数据库中,您需要一个包含“键”和“值”列的“设置”表。

    仅此而已。使用此模型,您可以设置何时要使用数据库以及何时继续使用 config/*.php 文件。

    比如说,您可以在调用此模型方法之前更改$config["useDatabaseConfig"] 变量(然后,应该禁用自动加载。)

    我确实获得了 CI 实例的变量,只是因为它更容易和更好。
    像这样读取配置数据:$this-&gt;pref-&gt;sess_cookie_name

    【讨论】:

      【解决方案2】:

      您可以创建一个新模型,从数据库中提取配置选项,然后自动加载此模型,使其在全球范围内可用。然后,您可以通过$this-&gt;model_name-&gt;function_name($db_column); 访问您的选项,并让$db_column 成为您要查找的选项的列名称,并让您的模型函数选择并返回列数据。

      我个人使用自定义配置文件:
      http://codeigniter.com/user_guide/libraries/config.html

      【讨论】:

        【解决方案3】:

        这是你不应该做的事情。每次请求完成时都会进行数据库调用,您不能将数据库凭据存储在数据库本身中。

        【讨论】:

        • 我不是指数据库详细信息,例如想要存储诸如每页显示的帖子数量之类的东西。我正在创建的脚本将在多个服务器上使用,例如每页的帖子数量需要是可编辑的。我可以将其加载到会话中,但我认为将其加载为常量*?在配置文件中会是一个更好的主意。
        猜你喜欢
        • 2011-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-04
        • 2014-07-10
        • 1970-01-01
        • 2023-04-09
        相关资源
        最近更新 更多