输出变量未按预期工作

时间:2018-08-08 20:34:42

标签: php mysql

我正在尝试学习PHP,但是我坚持某些东西。想知道你们中谁能帮助我。

问题是,我有一个像这样的变量:

$sql = "SELECT * FROM `settings` WHERE `key` LIKE 'signing_key'";

if($result = mysqli_query($link, $sql)){

    if(mysqli_num_rows($result) > 0){


        while($row = mysqli_fetch_array($result)){
                $key = $row['value'];
        }

        mysqli_free_result($result);

    }
}

$Settings['SIGNING_KEY'] = $key;

如您所见,$ key变量从while循环和输出中获取内容-让我们说-'12345'。

一切正常,当我:

echo $Settings['SIGNING_KEY'];

它确实按预期在屏幕上输出了“ 12345”。

奇怪的是:当我输入时:

$Settings['SIGNING_KEY'] = '12345';

在我的文件中,我尝试修改的模块似乎正常工作。但是当我输入:

$Settings['SIGNING_KEY'] = $key;

由于某种原因,模块无法获得正确的签名密钥。

有人可以向我解释我做错了什么吗?

在此先感谢并感谢您对PHP的了解!

编辑:

仅需一点额外的解释:

我试图从数据库中获取一个字符串($key),而不是将其硬编码到PHP文件中,因此有权访问该文件的每个人都可以对其进行编辑($key变量)我的网站的控制面板。

1 个答案:

答案 0 :(得分:-1)

是否可能未分配$key?如果只希望第一行匹配,请将while更改为if。另外,请尝试转储$key的值并向查询中添加一些错误处理(例如:mysqli_query($link, $sql) or die(mysqli_error($link)))。

相关问题