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