所需的输出正在更新特定用户。问题显示此错误
更新记录时出错:您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在'group =''附近使用正确的语法,在第8行查看WHERE id ='。
我试图回应查询,看看编码是否有问题,但没有显示任何错误。但是,当我尝试更新它时显示错误。代码有问题吗?谢谢。
require_once 'init.php';
include('db.php');
$id=mysql_real_escape_string($_POST["id"]);
$password1=mysql_real_escape_string($_POST["password"]);
$username = mysql_real_escape_string($_POST['username']);
$name = mysql_real_escape_string($_POST['name']);
$group = $_POST['group'];
$phone = mysql_real_escape_string($_POST['phone']);
$email = mysql_real_escape_string($_POST['email']);
if($password1 == ''){
$user = new User($id);
$password = $user->data()->password;
$salt = $user->data()->salt;
} else {
$salt = Hash::salt(32);
$password = Hash::make($password1, $salt);
}
$sql = " UPDATE users
SET
username = '$username',
password = '$password',
salt = '$salt',
name = '$name',
email = '$email',
group = '$group',
phone = '$phone'
WHERE id = $id";
if(mysqli_query($conn, $sql)){
echo "<script>alert('User has been Updated')</script>";
echo "<script>window.open ('adduser.php','_self')</script>";
} else {
echo "<br>Error updating record: " . mysqli_error($conn);
echo "<script>alert('User hasn't been Updated')</script>";
}
答案 0 :(得分:0)
我抛出了同样的问题。我犯了错误。
请参阅并预测:
$sql = "UPDATE Auc_AreaSelection SET Country='$country',State='$state',District='$district',City='$city' WHERE Email='$email'";
答案 1 :(得分:0)
1)作为referenced by Saty; group
为a reserved keyword in MySQL,并且在用作文字时必须在反引号中引用。
我的建议是将列的名称更改为其他内容,例如user_group
。
2)不要将mysql_
与mysqli_
功能混合使用。它们不兼容。
仅使用mysqli_
3)您应该考虑使用Prepared Statements进行SQL查询。它可以为您节省许多担心,安全问题(正确部署时)和代码行。
4)不要滚动自己的盐密码。 Why not?你应该使用PHP password_hash
机制而不是自己动手。这可以追溯到PHP 5.3(带a userland fix)。
5)如果您的PHP版本不够高,无法使用MySQLi或password_hash
,那么您必须升级!