我收到以下错误:
$experience = $row[Experience]; Use of undefined constant Experience - assumed 'Experience' – user3696343 )
从这段代码:
} else if($_GET['event'] == 15) {
$fetch = mysqli_query($db_handle, "SELECT Gold, Bank, Troop, Head, Body, Gloves, Foot, CombatLog, Item0, Item1, Item2, Item3, CoordinateX, CoordinateY, CoordinateZ, Horse, Hp, New, Food, Experience, Level FROM playerdata WHERE Unique_Id = '$unique_id'");
$row = mysqli_fetch_assoc($fetch);
$experience = $row[Experience];
$xptolevel = '50';
if($experience >= $xptolevel) {
echo'Enough Xp to level up';
mysqli_query($db_handle, "UPDATE playerdata SET Experience = 0, Level = Level + 1 WHERE Unique_ID = '$unique_id'");
echo "15|$unique_id|$local_id|$row[Gold]|$row[Bank]|$row[Troop]|$row[Head]|$row[Body]|$row[Gloves]|$row[Foot]|$row[CombatLog]|$row[Item0]|$row[Item1]|$row[Item2]|$row[Item3]|$row[CoordinateX]|$row[CoordinateY]|$row[CoordinateZ]|$row[Horse]|$row[Hp]|$row[New]|$row[Food]|$row[Level]|$row[Experience]|";
} else {
echo'Not enough XP to level up';
}
}
我希望有人可以提供帮助
答案 0 :(得分:3)
访问关联数组元素时,请添加引号:
$row[Experience] becomes $row['Experience']
如果您使用体验,它会假设您正在尝试使用不存在的常量体验,但PHP会为您转换为字符串。它有效,但有通知。
如果您需要在引号内使用它,请使用它周围的{}
:
echo "Some String {$row['Experience']}";
最后,您的SQL代码不安全。始终使用参数化查询,而不是在SQL中注入实际变量。