我正在尝试更新 SQL 数据库中的数据,但出现语法错误。我检查了好几遍,也用各种方法修改过,但都没有效果。
//...
$query = "update acesso set usuario=$usuario, saldo=$saldo, data=$data, rank=$rank, senha=$senha, id=$telegram_id where usuario=$usuario";
try {
mysqli_query($con, $query);
} catch (mysqli_sql_exception $e) {
echo $e;
exit;
}
错误:
mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rank='0', id='0' where usuario=teste' at line 1 in /var/www/html/admin/update_user.php:19 Stack trace: #0 /var/www/html/admin/update_user.php(19): mysqli_query() #1 {main}
我使用的是 MariaDB 10.4.32 版本和 PHP 8.2.12
不涉及安全性,我相信您唯一的问题是“排名”列,它是保留关键字。
所以你的查询应该是:
$query = "UPDATE acesso SET usuario='$usuario', saldo='$saldo', data='$data', `rank`='$rank', senha='$senha', id='$telegram_id' WHERE usuario='$usuario'";