我已经清理了我的代码,以便将以下内容作为我的表单。但是我在发送数据和从新更新.php更新时遇到问题。表单可以正常工作,可以检索数据并显示它。但是在提交时,我收到确定的更新消息,但数据库中的记录没有更改任何想法。 索引.php
<?php
include 'connectdb.php';
// include 'query.php';
$sql = "SELECT id, WeightorMeasure FROM weightsmeasures";
$result = $conn->query($sql)
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<form action="update.php"method="post">";
echo "<input type="text" name="id" value = ".$row["id"].">";
echo "<input type="text" name="WeightorMeasure" value = ".$row["WeightorMeasure"] .">";
echo "<input type="submit" value=" Submit " name="Update">";
}
echo "</form>";
} else {
echo "0 results";
}
$conn->close();
?>
更新.php
<?php
include 'connectdb.php';
$wm = $_POST['id'];
$id = $_POST['WeightorMeasure'];
$sql = "UPDATE weightsmeasures SET WeightorMeasure='$wm' WHERE id='$id'";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
$conn->close();
?>
已更改为"下面",现在收到此错误。 更新记录时出错:"字段列表"中出现未知列"sdada"。因此,看起来它试图将表单值$wm用作表中的列标题而不是输入值。
$wm = $_POST['WeightorMeasure'];
$id = $_POST['id'];
$sql = "UPDATE weightsmeasures SET WeightorMeasure=$wm WHERE id=$id";
$wm = $_POST['id'];
$id = $_POST['WeightorMeasure'];
也许你用错了这些?:D
$wm = $_POST['WeightorMeasure'];
$id = $_POST['id'];
顺便说一下,您的查询容易受到 MySQL 注入的影响,请考虑使用预准备语句
您意识到您在变量分配中切换了 ID 和 WeightOrMeasure,从 $_POST 数据中切换了? 这会导致更新查询找不到 ID,但不会遇到问题。从而告诉您操作成功
我找出了您的代码中可能存在的问题。
mysqli_query($conn, $sql); //should be $conn->query($sql);
和这条线
$wm = $_POST['id']; //$_POST['WeightorMeasure'];
$id = $_POST['WeightorMeasure'];//$_POST['id'];
顺序错误。 我希望您已经在 dpconnect.php 文件中创建了$conn对象。
Ok 发现问题是上述 $_POST["WeightorMeasure"]; 和 $_POST["id"]; 混淆但最重要的因素是我发布的表包含多行,并且在_POST更新时.php它不知道如何处理所有不同的行,因为 SQL 只处理一行。一旦我通过帖子发送了单行,它就可以正常工作。现在按照建议学习和添加准备好的语句。
更新.php
<?php
include 'connectdb.php';
$wm = $_POST["WeightorMeasure"];
$id = $_POST["id"];
echo $wm . "<br>";
echo $id . "<br";
$sql = "UPDATE weightsmeasures SET WeightorMeasure="$wm", id=
$idWHERE id= $id";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
$conn->close();
?>
手动单次输入。 索引.php
<?php
include 'connectdb.php';
// include 'query.php';
$sql = "SELECT id, WeightorMeasure FROM weightsmeasures WHERE id=11";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<form action="update.php"method="post">";
echo "<input type="text" name="id" value = ".$row["id"].">";
echo "<input type="text" name="WeightorMeasure" value = ".$row["WeightorMeasure"].">";
echo "<input type="submit" value=" Submit " name="Update">";
}
echo "</form>";
} else {
echo "0 results";
}
$conn->close();
?>