php - 使用 JSON 和 PHP 更新 MySQL 数据库

标签 php mysql mysqli

我有一个 HTML 表单,我正在填充该表单,然后使用 JSON 将表单数据发送到 PHP 页面,在这个阶段,我已经检查了控制台日志上发送的数据,它确实被发送到 PHP 页面,我是然后利用 foreach 循环将数据发送到 MySQL 数据库,这就是我遇到问题的地方。

数组 $_POST 中的最后一个输入为 HTML 表单中的 $key => $entry 是唯一发送到数据库的输入,其余数据不会发送,我的意思是如果我有六个成对的 $key=> $entry 输入,只有最后一对 n $Key=>$entry 输入被发送到数据库,我尝试了各种方法,但没有任何效果。

我认为我的问题在于使用 foreach 循环进行更新。

foreach ($_POST as $key => $entry) {
    $sql = "UPDATE form SET Quantity='$entry' WHERE Pipesize='$key'";
    echo  "$key"." ". 'has input of'." ". "$entry","<br>";
}
if (mysqli_query($conn, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);

最佳答案

mysqli_query 在循环之后,因此它只会执行最后一个查询。将 mysqli_query 放入循环中。并使用准备好的语句来防止 sql 注入(inject),并且切勿在没有检查的情况下直接使用 $_POST 人们可以轻松操纵您的发布请求

foreach ($_POST as $key => $entry) {
    $sql = "UPDATE form SET Quantity='$entry' WHERE Pipesize='$key'";
    echo  "$key"." ". 'has input of'." ". "$entry","<br>";

    if (mysqli_query($conn, $sql)) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . mysqli_error($conn);
    }
}

mysqli_close($conn);

准备好的语句的示例,没有测试它。如果您想了解有关准备陈述的更多信息,请查看 w3schools

$stmt = $conn->prepare("UPDATE form SET Quantity = ? WHERE Pipesize = ?");
$stmt->bind_param('ii', $entry, $key);

foreach ($_POST as $key => $entry) {
    $stmt->execute();
    echo  "$key"." ". 'has input of'." ". "$entry","<br>";

    if ($stmt->affected_rows > 0) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . $stmt->error;
    }
}

$stmt->free_result();
$stmt->close();

关于php - 使用 JSON 和 PHP 更新 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59682657/

相关文章:

javascript - 如何在最初由ajax加载时将表单作为GET方法提交

PHP 在外部 html 文件中显示搜索结果文本文件

java - 将字段值插入数据库

php - 让 mysqli_query 执行的问题

php - 将数组转换为单独的字符串

php - 如何使用 file_put_contents() 将数据附加到文件中?

Php + MySQL 横幅旋转器按顺序

php - 想要检查用户名是否存在于数据库中?

php - 如何从从 mysqli_fetch_array() 获取的数组转换的 javascript 数组中获取所有行数据

php - Dreamweaver PHP mySQL 插入到 WordPress wpdb 转换