Я использую foreach для цикла массива и обновления базы данных MySQL. Это мой кодОбновление базы данных MySQL с помощью PHP
foreach($result['getHiscore'] as $highScoreType => $highScoreValues){
$rank = $highScoreValues['rank'];
$lvl = $highScoreValues['lvl'];
$totalXp = $highScoreValues['totalxp'];
mysqli_query($con,"UPDATE Users SET Level("$highScoreType") = $lvl, Xp("$highScoreType") = $totalXp,
WHERE UserID= '1'");
}
я пытаюсь приравнивать слово «уровень» с содержимым $ highScoreType, заголовки столбцов в моей БД являются Leveloverall, Xpoverall, Levelattack, Xpattack и так далее, так что я был планирование сохранения константы уровня/Xp и просто изменение ключа.
Это выглядит хорошо для меня, и когда я тестировал sql с заранее заданными значениями, он обновлялся отлично, однако использование переменных не обновляется вообще. Я знаю, что переменные выходят из массива правильно, как если бы я возвращал их в строку с форвардом, который они распечатывают в правильном формате и порядке.
Является ли это моим форматированием, или я пропущу что-то еще?
Используйте одинарные кавычки для '("$ highScoreType")', как в '('$ highScoreType')' и сделать то же самое для другой. –