一切正常,但“我的更新”查询不起作用

时间:2018-12-22 04:53:45

标签: php function mysqli

我正在PHP中进行添加,更新和删除。 我的更新查询不起作用 我可以知道,更新查询中我出了什么问题吗? 到目前为止,这是我的代码

<?php include "db.php" ?>
<?php include "functions.php" ?>
<?php 
    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($connect, $query);
        if(!$result) {

            die("QUERY FAILED" . mysqli_error($connect));    
        }
        else {

            echo "Record Updated"; 

            }
    }
 ?>

<!DOCTYPE html>
 <html>
 <head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Update DB </title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<div class="container">

<div class="col-sm-6">
    <form action="login_update.php" method="post">
        <div class="form-group">
            <label for="username">Username</label>
            <input type="text" name="username" class="form-control">
        </div>

         <div class="form-group">
            <label for="password">Password</label>
            <input type="password" name="password" class="form-control">
        </div>

         <div class="form-group">

            <select name="id" id="">
                <?php 
                showAllData();
                ?>
            </select>

         </div>

        <input class="btn btn-primary btn-block" type="submit" name="submit" value="UPDATE">

    </form>


</div>

浏览器显示错误:QUERY FAILED您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的''附近使用

2 个答案:

答案 0 :(得分:-1)

尝试一下:

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

或更妙的是:

$stmt = $connect->prepare("UPDATE `users` SET `username`=?, `password`=? WHERE id=?");
$stmt->bind_param("ssi", $username, $password, $id);
$stmt->execute();
$stmt->close();

别忘了清理您的输入内容! Google php password_verify

答案 1 :(得分:-1)

确保$ id是否为空。这种错误通常在主键返回空值时发生。[在这种情况下,您的'$ id'变量]

$conn = mysqli_connect($servername, $username, $password,$database); 

$sql = "UPDATE users SET username = '$username', password = '$password' WHERE id = $id";
$result = $conn->query($sql);

if (!$result) {
    die("QUERY FAILED" . $conn->error);
} else {

    echo "Record Updated";
}