Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从数据库选项定义变量_Php - Fatal编程技术网

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

Php 如何从数据库选项定义变量,php,Php,我在数据库中有一个选项表,我想从数据库中提取这些选项,并使用define(“DEF_NAME”、“DEF_VALUE”)定义它们,但由于它们是从数据库中提取的,所以它们周围没有引号 这是我目前使用的代码: $strOptionName = $rowDBOptions["strOptionName"]; $strOptionNameUpper = strtoupper($strOptionName); $strOptionValue = $rowDBOptions["st

我在数据库中有一个选项表,我想从数据库中提取这些选项,并使用define(“DEF_NAME”、“DEF_VALUE”)定义它们,但由于它们是从数据库中提取的,所以它们周围没有引号

这是我目前使用的代码:

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

define($strOptionNameUpper, $strOptionValue);

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

您的代码示例应该可以正常工作。请检查通知的报告行;您的脚本似乎依赖于数据库中不存在的常量。

您的代码应该可以正常工作,我个人从数据库提取配置的方法如下所示:

配置数据库表有一个“键”,即
GLOBAL\u TAX\u RATE
和一个值,即
0.25

查询如下所示:

SELECT conf_key, conf_value FROM config_options
while ($ROW = mysql_fetch_assoc($QRY)) {

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

}
PHP(在数据库连接/查询执行之后)如下所示:

SELECT conf_key, conf_value FROM config_options
while ($ROW = mysql_fetch_assoc($QRY)) {

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

}
如果您想添加一个新的键/值对,那么您可以使用一种很好的方法从数据库中定义所有常量,而不必显式地添加一个新语句


当然也有一些变化,比如在繁忙的站点上,将这些值存储在会话中,并循环使用时间戳,或在登录/注销时,或根据需要,每隔10分钟从数据库刷新配置会话值以获取任何更改,无需在每次有人打开页面时运行配置选择。

引号不是问题所在。关于未定义变量的通知具体说了些什么,有哪些行?(需要代码)你也能发布准确的错误消息吗?这就是我所拥有的,我只是用变量来保持事情的整洁,以防其他人事后介入。每次页面加载时都会加载定义,因此如果有更改,将在下一个页面视图中更新定义。注意事项针对数据库中的所有常量。数据库正在存储常量的名称和值。在解析列表并从中创建定义之前,它不知道任何常量。因此,您正在尝试在
define()?确保在包含引用它们的代码之前获取并定义所有常量。