MariaDB中的语法更新ID失败

时间:2018-10-12 12:41:00

标签: php mysql sql-update mariadb

当我尝试使用PHP更新数据库中的表时,出现以下错误。

  

查询失败您的SQL语法有误;查看手册   对应于您的MariaDB服务器版本的正确语法   在第1行的“”附近使用

(第一行是我的查询开始的地方)

我已经得出结论,这与"id"有关,但我不知道该怎么办。如果我将其硬编码为"WHERE id = 1",则可以使用,但实际上似乎无法读取ID。

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));    
    }  
}

这是我用于ID的HTHML:

<form action="login_update.php" method="post">

<div class="form-group">
            <select name="id" id="">
        <?php
    global $connection; 
            $query = "SELECT * FROM users";
            $result = mysqli_query($connection, $query);
            if(!$result){ //om result inte är TRUE then die()
                die('Query failed ' .mysqli_error());
            }

            while($row = mysqli_fetch_assoc($result)){
            $id = $row['id'];
            echo "<option value=''>$id</option>";
        ?>
    </select>

</div>

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

        </form>

我在本地主机上运行它,因此不需要任何哈希,并且与数据库的连接工作正常。

2 个答案:

答案 0 :(得分:0)

添加这样的查询:

$query .= "WHERE id = '$id' ";

答案 1 :(得分:-1)

添加值以选择框选项

echo "<option value='$id'>$id</option>";