关于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");
}
?>
答案 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">