如何从数据库选项定义变量

时间:2011-06-14 15:42:50

标签: php

我在数据库中有一个选项表,我希望将它们从数据库中拉出来并使用define(“DEF_NAME”,“DEF_VALUE”)来定义它们,但是因为它们是从数据库中取出的他们周围没有引号。

这是我目前使用的代码:

$strOptionName          = $rowDBOptions["strOptionName"];
$strOptionNameUpper = strtoupper($strOptionName);
$strOptionValue     = $rowDBOptions["strOptionValue"];
$inttblOptionsType      = $rowDBOptions["strOptionType"];

define($strOptionNameUpper, $strOptionValue);

唯一的问题是我收到有关未定义变量的通知。有没有人知道从数据库变量创建定义的另一个选项或方法?

2 个答案:

答案 0 :(得分:1)

您的代码应该可以正常工作,我自己从数据库中提取配置的个人方法是这样的:

配置数据库表有一个'键'即。 GLOBAL_TAX_RATE和一个值,即。 0.25

查询看起来像:

SELECT conf_key, conf_value FROM config_options

PHP(在数据库连接/查询执行之后)看起来像:

while ($ROW = mysql_fetch_assoc($QRY)) {

  define($ROW['conf_key'],$ROW['conf_value']);

}

如果要添加新的键/值对,最终可以从数据库中定义所有常量,而不必显式添加新语句。

当然有变化,例如在繁忙的网站上,将这些值存储在会话中并循环显示 - 并且每10分钟使用一个时间戳,或者登录/注销,或者您需要的任何内容 - 刷新配置会话来自数据库的值以获取任何更改,而无需在每次有人打开页面时运行配置SELECT。

答案 1 :(得分:0)

您的代码示例应该可以正常工作。请检查通知报告的哪条线;看来你的脚本依赖于一个不在数据库中的常量。