PHP MySQL插入...在重复键更新上添加重复条目

时间:2017-08-24 17:05:37

标签: php mysql on-duplicate-key

我从数据库中提取多个信息数组,并在加载页面时向用户显示项目。如果用户想要创建新项目,他们可以单击保存按钮将信息发送回数据库。

如果用户点击“保存”,我会使用ON DUPLICATE KEY UPDATE子句更新数据库(如果之前的任何项目已更改),或者如果用户创建了新项目,则使用新项目。

$club = $_POST['club'];
$value_1 = json_decode($_POST['value_1']);
$value_2 = json_decode($_POST['value_2']);
$value_3 = json_decode($_POST['value_3']);
$value_4 = json_decode($_POST['value_4']);
$value_5 = json_decode($_POST['value_5']);
$value_6 = json_decode($_POST['value_6']);

foreach ($value_1 as $index => $item) {

        $sql = "INSERT INTO test_stand_map (id, club, value_1, value_2, value_3, value_4, 
        value_5, value_6) VALUES (LAST_INSERT_ID(), $club, $item, $value_2[$index], 
       '$value_3[$index]', $value_4[$index], $value_5[$index], $value_6[$index]) 
        ON DUPLICATE KEY UPDATE club = VALUES(club), value_1 = VALUES(value_1), 
        value_2 = VALUES(value_2), value_3 = VALUES(value_3), value_4 = VALUES (value_4), 
        value_5 = VALUES(value_5), value_6 = VALUES(value_6)";

        $conn->query($sql);
}

但是,如果用户创建新项目并单击“保存”并继续单击“保存”,则最后一个条目将在原始文件后的每次单击中继续重复。如果用户在页面加载后单击“保存”(不创建新项目),也会发生这种情况。

例如,这里是页面从加载时抓取信息的数据库

列'id'是主键,具有自动递增的唯一索引。

enter image description here

用户单击保存按钮(不创建新项目)后的数据库

enter image description here

我觉得这个问题是由LAST_INSERT_ID()引起的,但是我不确定什么是正确的解决方案,并希望得到任何帮助。

0 个答案:

没有答案