我正在尝试学习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
变量)我的网站的控制面板。
答案 0 :(得分:-1)
是否可能未分配$key
?如果只希望第一行匹配,请将while
更改为if
。另外,请尝试转储$key
的值并向查询中添加一些错误处理(例如:mysqli_query($link, $sql) or die(mysqli_error($link))
)。