使用php

时间:2018-01-08 06:37:12

标签: php mysql sql xampp

我是php的新手,我正在学习如何使用php在sql查询的帮助下更新表。但不知何故,我陷入了SQL查询部分。它总是显示我无法理解的错误。

我使用的查询是:$query= "UPDATE users SET username = '$username' , password = '$password' WHERE id = $id " ;

我得到的错误是:

  

您的SQL语法出错;查看与MariaDB服务器版本对应的手册,以获取正确的语法   靠近''第1行

起初我一直在寻找任何语法错误,但我想情况并非如此......

我还提到了我一直在使用的验证设置代码。

<?php
include "db.php"; 
include "functions.php"; 
?>

<?php

if(isset($_POST["submit"])){
    $username= $_POST["username"];
    $password= $_POST["password"];
    $id= $_POST["id"];

    $query= "UPDATE users SET username = '$username' , password = '$password'  WHERE id = $id " ;

    $result=mysqli_query($connection,$query);
    if(!$result){
        die("QUERY FAILED".mysqli_error($connection));  
    }

}
?>
已经在db.php ..

中定义了

$connection

你能说出我的错吗?

2 个答案:

答案 0 :(得分:0)

如果您获得 ID,用户名和密码值,则

试试这个

$query= "UPDATE `users` SET `username` = '$username' , `password` = '$password'  WHERE `id` = $id " ;

答案 1 :(得分:0)

您的密码是否在数据库中进行了哈希?如果是这样,那可能是你的问题。试试这个。

$password = mysqli_real_escape_string($_POST['password']);
$hashed_password = password_hash($password, PASSWORD_BCRYPT, array('cost => 12'));

$query= "UPDATE `users` SET `username` = '$username' , `password` = 
'$hashed_password'  WHERE `id` = $id " ;

如果您将密码作为纯文本存储在数据库中,我建议使用此password_hash函数。我还建议为此检查已准备好的语句,以及它更安全,并有助于防止SQL注入。