在 PHP 中通过 foreach 循环插入/删除

问题描述

这是控制台数据POST,我正在尝试创建一个函数,如果数据库中不存在数组值,则将插入,如果数据库值与数组值不匹配,则插入已存在的值数据库将被删除。 我创建了代码,它删除了已经插入的值并重新插入数组中的值。 我还阅读了与该帖子类似的其他主题,但都没有帮助。 请帮助我,我如何实现该功能

如果数据库中不存在则插入数组值 如果数据库列值与数组值不匹配,则删除该值。

控制台发送帖子数据 -

state: 14506
district: 16564
pincode[]: 844101
pincode[]: 844102
pincode[]: 844103
pincode[]: 844111

PHP 数组

Array
(
    [state] => 14506
    [district] => 16564
    [pincode] => Array
        (
            [0] => 123
            [1] => 456
            [2] => 789
        )
)

PHP sql

$sqlInsert = "INSERT INTO `table` (`alt_pincode`,`alt_district`,`alt_state`)VALUES (:pin,:district,:state)";
$stmtInsert = $con->prepare($sqlInsert);

foreach ($_POST['pincode'] as $key => $binded_pinvalue) {
    if (!empty($binded_pinvalue)) {
        $stmt = $con->prepare("SELECT * FROM `table` WHERE `state` = :state AND `district` = :district AND `pin` = :pincode");
        $stmt->execute([
            ':district' => $district,':state' => $state,':pin' => $binded_pinvalue,]);
        if ($stmt->rowCount() > 0) {
            $stmt = $con->prepare("DELETE FROM `table` WHERE `state` = :state AND `district` = :district AND `pin` = :pincode");
            $stmt->execute([
                ':district' => $district,]);
        } else {
            //INSERT FUNCTION
            $stmtInsert->bindParam(':pin',$binded_pinvalue,PDO::ParaM_STR);
            $stmtInsert->bindParam(':district',$district,PDO::ParaM_STR);
            $stmtInsert->bindParam(':state',$state,PDO::ParaM_STR);
            $stmtInsert->execute();
        }
    }
}

也使用此代码但重复 - 插入

foreach ($_POST['pincode'] as $key => $binded_pinvalue) {
   $stmt = $con->prepare("DELETE FROM `table` WHERE `state` = :state AND `district` = :district AND `pin` = :pincode");
   $stmt->execute([
     ':district' => $district,]);
}

foreach ($_POST['pincode'] as $key => $binded_pinvalue) {
  //INSERT FUNCTION
  $stmtInsert->bindParam(':pin',PDO::ParaM_STR);
  $stmtInsert->bindParam(':district',PDO::ParaM_STR);
  $stmtInsert->bindParam(':state',PDO::ParaM_STR);
  $stmtInsert->execute();
}

请帮助我,它一次又一次地插入并删​​除存在值。我如何使它正确

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)