使用PHP更新数据字段

时间:2018-09-22 13:32:26

标签: php html

关于PHP,我是一个完整的初学者。我已经成功创建了一个登录表单/页面,要求用户输入他/她的用户名和密码,然后将其添加到数据库中。我还设法创建了一个页面(使用php)来显示所有数据字段中包含的数据。我有单独的数据库连接文件,效果很好。我有一个包含这些功能的functions.php文件。

现在,我已经创建了一个php文件,在其中我应该能够更新数据库中各个字段中的数据。无需更新/替换所选行(以id为目标)中的现有数据(用户名和密码),而是在数据库中使用新的用户名和密码创建新行。随我的代码来更新现有数据字段。

<?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>

我根本找不到问题。由于人们使用PHP的方式不同,因此我无法根据我尝试过的特定编码找到解决方案。

更新

请注意,作为学习php的一部分,我正在使用localhost,但尚未开始研究安全性。我正在通过另一个文件(db.php)初始化$ connection,该文件在我先前代码的第一行中调用。

    <?php
$connection = mysqli_connect('localhost', 'root', '', 'loginapp'); 
    if(!$connection) {            
    die("Database connection failed");        
    }
?>

2 个答案:

答案 0 :(得分:0)

由于您没有说过login_create.php的作用以及您帖子中该php代码的文件名是什么。我只能猜测您的login_create.php文件是要创建一个新帐户,而不是对其进行更新。带有该UPDATE查询的文件可能未命名为login_create.php。因此,我的猜测是您在<form action="login_create.php" method="post">

中输入了错误的文件名

答案 1 :(得分:0)

(代表问题作者发布的解决方案)

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

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

代替

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