问题描述
这是控制台数据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
)
)
$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 (将#修改为@)