我正在努力学习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
变量)可以编辑的每个人都有权访问我的网站的控制面板。
1条答案
按热度按时间brtdzjyr1#
是可能的
$key
可能没有分配吗?如果只需要第一个匹配行,请更改while
到一个if
. 也试着抛售$key
并为查询添加一些错误处理(如:mysqli_query($link, $sql) or die(mysqli_error($link))
).