微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。