MySQL обновление базы данных с JSON и PHP - PullRequest
0 голосов
/ 10 января 2020

У меня есть форма HTML, которую я заполняю, а затем отправляю данные формы на страницу PHP, используя JSON, на этом этапе я проверил данные, отправленные в консольный журнал, и они действительно отправляются в На странице PHP я отправляю данные в базу данных MySQL, используя foreach l oop, и вот здесь я сталкиваюсь с проблемой.

Последние входные данные в массиве $ _POST как $ key => $ запись в форме HTML являются единственными, которые отправляются в базу данных, остальные данные не отправляются, что я имею в виду если у меня есть шесть пар входов $ key => $ entry, в базу данных отправляется только последняя пара входов n $ Key => $ entry, я перепробовал все виды вещей, и ничего не работает.

Я думаю, что моя проблема в обновлении с foreach l oop.

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);

1 Ответ

0 голосов
/ 10 января 2020

mysqli_query после l oop, поэтому он будет только последним. поместите mysqli_query в ваш l oop. И используйте готовые отчеты для предотвращения sql инъекций и никогда не используйте $ _POST direct без проверки, люди могут легко манипулировать вашим пост-запросом

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...