使用PHP更新数据字段

使用PHP更新数据字段,php,html,Php,Html,说到PHP,我是一个完全的初学者。我已成功创建了一个登录表单/页面,要求用户输入用户名和密码,然后将其添加到数据库中。我还创建了一个页面(使用php)来显示所有数据字段中包含的数据。我有单独的db连接文件,它工作得很好。我有一个functions.php文件,其中包含函数 现在,我已经创建了一个php文件,在其中我应该能够更新数据库中各个字段中的数据。它不更新/替换所选行(针对id)中的现有数据(用户名和密码),而是使用新用户名和密码在db中创建新行。随信附上我更新现有数据字段的代码 <?

说到PHP,我是一个完全的初学者。我已成功创建了一个登录表单/页面,要求用户输入用户名和密码,然后将其添加到数据库中。我还创建了一个页面(使用php)来显示所有数据字段中包含的数据。我有单独的db连接文件,它工作得很好。我有一个functions.php文件,其中包含函数

现在,我已经创建了一个php文件,在其中我应该能够更新数据库中各个字段中的数据。它不更新/替换所选行(针对id)中的现有数据(用户名和密码),而是使用新用户名和密码在db中创建新行。随信附上我更新现有数据字段的代码

<?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($connection, $query);
        if(!$result) {

            die("QUERY FAILED" . mysqli_error($connection));
        }


}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
</head>
<body>

 <div class="container">

     <div class="col-sm-6">

      <form action="login_create.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" type="submit" name="submit" value="UPDATE">

         </form>          

     </div>

 </div>     

</body>
</html>


因为您没有在帖子中说明login_create.php的作用以及php代码的文件名。我只能猜测您的
login\u create.php
文件是创建一个新帐户,而不是更新它。可能您的带有
更新
查询的文件未命名为
login\u create.php
。因此,我猜测您在

中输入了错误的文件名(代表问题作者发布了解决方案)

问题在于表单操作的命名不正确。我曾经

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

而不是

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


更新
查询无法创建新行。此外,查询文本中还有语法错误。我假设您的表单提交到
action
属性中提供的错误url。请使用
INSERT
语句创建新行,但请记住,如果您在“users”表中声明了
主键
(事实上,从逻辑上讲,
id
列应该声明为
主键
,而
用户名
应该声明为
唯一
插入
将不起作用,它会给您一个错误,因为表中存在数据重复。您的表单正在发布到
action=“login\u create.php”
如果文件命名正确,它正在做它应该做的事情。创建一个新登录。警告:永远不要以明文形式存储密码!只存储密码哈希使用PHP和。警告:您完全可以使用参数化,并且应该真正使用参数化,而不是像那样手动构建查询。特别是因为您没有逃避用户输入完全
<form action="login_update.php" method="post">