output变量不能按预期工作

bzzcjhmw  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(249)

我正在努力学习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变量get的内容来自while循环和输出-我们只说-'12345'。
当我:

echo $Settings['SIGNING_KEY'];

它确实输出了屏幕上的“12345”,正如预期的那样。
奇怪的是:当我进去的时候:

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

在我的文件中,我试图修改的模块似乎工作正常。但当我进去的时候:

$Settings['SIGNING_KEY'] = $key;

由于某些原因,模块无法获取正确的签名密钥。
有人能解释一下我做错了什么吗?
提前感谢你,很抱歉你还不太了解php!
编辑:
再解释一下:
我在找一根绳子( $key )从数据库而不是把它硬编码在一个php文件,所以它(的 $key 变量)可以编辑的每个人都有权访问我的网站的控制面板。

brtdzjyr

brtdzjyr1#

是可能的 $key 可能没有分配吗?如果只需要第一个匹配行,请更改 while 到一个 if . 也试着抛售 $key 并为查询添加一些错误处理(如: mysqli_query($link, $sql) or die(mysqli_error($link)) ).

相关问题