如何使用 php 和 mysqli 以 HTML 形式更新数据库中的记录
How to update a record in a database with an HTML form using php and mysqli
我有 HTML 一个文本框和一个 select 框。我希望用户从下拉 select 框中选择一个固定号码,该框从我的数据库中选择号码。然后我希望用户在文本框中输入新的月租。一旦用户点击提交按钮,我希望它根据选择的公寓号码更新数据库月租金。我可以从数据库中获取公寓号码,但似乎无法从文本框中获取信息并在数据库中进行更改。
这是我的代码
Changeback.php(后端)
<?php
include "connect.php";
if(isset($_POST['MonthlyRent'])){
$MonthlyRent = $_POST['MonthlyRent'];
$FlatCode = $_POST['FlatCode'];
$query = "UPDATE MonthlyRent set MonthlyRent = ($MonthlyRent) where FlatCode = ($FlatCode) ";
mysqli_query($con, $query) or die ("Invalid query");
$numrows = mysqli_affected_rows($con);
echo "number of affected rows is " . $numrows;
exit( print_r( $_POST ) );
mysqli_close($con);
}
?>
change.php(前端)
<html><head><title>Connect to Database</title></head><body>
<font size="4"> Enter owner details</font><br><br>
<form action="changeback.php" method="post" >
Monthly Rent <input type="text" name="MonthlyRent">
Flat Code <select name="FlatCode">
<?php
$con = mysqli_connect("localhost", "root", "root") or die ("No connection");
mysqli_select_db($con , "flat") or die ("db will not open");
$query = "SELECT distinct FlatCode from FLAT";
$result = mysqli_query($con, $query) or die("Invalid query");
while($rows = mysqli_fetch_array($result)) {
echo "<option value=\"" . $rows[0] . "\">" . $rows[0] . "</option>";
}
echo "</select>";
mysqli_close($con);
?>
<input type="submit" value="Submit Value">
</form></body></html>
问题出在您的 UPDATE 语句中,您 (1) 将 MonthlyRent
列名放在 FLAT
table 名称应该出现的位置,并且 (2)不要在平面代码值周围加上引号。
变化:
$query = "UPDATE MonthlyRent set MonthlyRent = ($MonthlyRent) where FlatCode = ($FlatCode) ";
收件人:
// Always escape user input to reduce risk of errors and security holes
$escapedMonthlyRent = mysqli_real_escape_string($con, $MonthlyRent);
$escapedFlatCode = mysqli_real_escape_string($con, $FlatCode);
$query = "update FLAT set MonthlyRent = '$escapedMonthlyRent' "
."where FlatCode = '$escapedFlatCode'";
这不是一个答案,只是一个很长的评论。
如果您有时间(几个小时),我强烈建议您前往 PHPAcademy 并学习他们的一些免费教程。
先从这里开始:
https://phpacademy.org/videos/php-and-mysql-with-mysqli
如果您希望人们登录您的站点,他的 Register & Login
教程是必须的。
此外,theNewBoston 有一些很棒的(免费)教程,您可以查看。
我有 HTML 一个文本框和一个 select 框。我希望用户从下拉 select 框中选择一个固定号码,该框从我的数据库中选择号码。然后我希望用户在文本框中输入新的月租。一旦用户点击提交按钮,我希望它根据选择的公寓号码更新数据库月租金。我可以从数据库中获取公寓号码,但似乎无法从文本框中获取信息并在数据库中进行更改。
这是我的代码
Changeback.php(后端)
<?php
include "connect.php";
if(isset($_POST['MonthlyRent'])){
$MonthlyRent = $_POST['MonthlyRent'];
$FlatCode = $_POST['FlatCode'];
$query = "UPDATE MonthlyRent set MonthlyRent = ($MonthlyRent) where FlatCode = ($FlatCode) ";
mysqli_query($con, $query) or die ("Invalid query");
$numrows = mysqli_affected_rows($con);
echo "number of affected rows is " . $numrows;
exit( print_r( $_POST ) );
mysqli_close($con);
}
?>
change.php(前端)
<html><head><title>Connect to Database</title></head><body>
<font size="4"> Enter owner details</font><br><br>
<form action="changeback.php" method="post" >
Monthly Rent <input type="text" name="MonthlyRent">
Flat Code <select name="FlatCode">
<?php
$con = mysqli_connect("localhost", "root", "root") or die ("No connection");
mysqli_select_db($con , "flat") or die ("db will not open");
$query = "SELECT distinct FlatCode from FLAT";
$result = mysqli_query($con, $query) or die("Invalid query");
while($rows = mysqli_fetch_array($result)) {
echo "<option value=\"" . $rows[0] . "\">" . $rows[0] . "</option>";
}
echo "</select>";
mysqli_close($con);
?>
<input type="submit" value="Submit Value">
</form></body></html>
问题出在您的 UPDATE 语句中,您 (1) 将 MonthlyRent
列名放在 FLAT
table 名称应该出现的位置,并且 (2)不要在平面代码值周围加上引号。
变化:
$query = "UPDATE MonthlyRent set MonthlyRent = ($MonthlyRent) where FlatCode = ($FlatCode) ";
收件人:
// Always escape user input to reduce risk of errors and security holes
$escapedMonthlyRent = mysqli_real_escape_string($con, $MonthlyRent);
$escapedFlatCode = mysqli_real_escape_string($con, $FlatCode);
$query = "update FLAT set MonthlyRent = '$escapedMonthlyRent' "
."where FlatCode = '$escapedFlatCode'";
这不是一个答案,只是一个很长的评论。
如果您有时间(几个小时),我强烈建议您前往 PHPAcademy 并学习他们的一些免费教程。
先从这里开始:
https://phpacademy.org/videos/php-and-mysql-with-mysqli
如果您希望人们登录您的站点,他的 Register & Login
教程是必须的。
此外,theNewBoston 有一些很棒的(免费)教程,您可以查看。