查询失败您的SQL语法有错误

我正在尝试使用php更新mysql数据库。

$connection=mysqli_connect('localhost','root','','loginapp');
if(!$connection){
    die("database connection failed");
}
if (isset($_POST['submit'])){

$username = $_POST['username'];
$password = $_POST['password'];
$id = $_POST['id'];
$query = "UPDATE users SET ";
$query .= "username = '$username',";
$query .= "password = '$password' ";
$query .= "WHERE id = $id";
$result = mysqli_query($connection,$query);

if (!$result) {
    die("Query Failed".mysqli_error($connection));
}
}

我已经尝试了所有可能的方式来编写以下代码,但是每次遇到错误时:

  

查询失败您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“”附近使用

wangliqingkong 回答:查询失败您的SQL语法有错误

您必须使用准备好的语句并打开正确的错误报告。不要使用die()来显示错误消息。不要将明文密码存储在数据库中,而应使用password_hash()。此类代码的正确但简单的示例如下:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connection = new mysqli('localhost','root','','loginapp');
$connection->set_charset('utf8mb4');

if (isset($_POST['submit'])) {
    $password = password_hash($_POST['password'],PASSWORD_DEFAULT);

    $stmt = $connection->prepare('UPDATE users SET username=?,password=? WHERE id=?');
    $stmt->bind_param('sss',$_POST['username'],$password,$_POST['id']);
    $stmt->execute();
}
本文链接:https://www.f2er.com/3160630.html

大家都在问