Я пытаюсь изучить 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
) может быть отредактирована всеми, у кого есть доступ к панели управления моего веб-сайта.
Возможно ли, что $key
не назначен? Если вы хотите, чтобы первая совпадающая строка меняла while
на if
. Также попробуйте сбросить значение $key
и добавить некоторые ошибки в ваши запросы (как в: mysqli_query($link, $sql) or die(mysqli_error($link))
).