我有一系列单选按钮插入到数组中的数据库中。这第一次工作正常。
$query="INSERT INTO `notes_value` ( `style_color`, `note_id`, `value`, `created_at` ) VALUES ";
foreach ($params AS $key => $value) {
if (( $key != "form_key" ) && ( $key != "stylecolor" ) && ( $key != "key" )){
$values[] = "('$sku', '$key', '$value', NOW()) ";
}
}
$query .= implode(', ', $values) . ';';
当单选按钮的状态发生变化时,我试图让它更新这些列,所以改变这个:
$values[] = "('$sku', '$key', '$value', NOW()) ON DUPLICATE KEY UPDATE value = '$value'";
如果使用此查询选择的数组中只有一个单选按钮,它将起作用并更新:
INSERT INTO `notes_value` ( `style_color`, `note_id`, `value`, `created_at` )
VALUES ('1893240720', '1', 'no', NOW())
ON DUPLICATE KEY UPDATE value = 'yes';
但是,当我选择了多个按钮时,它会中断查询:
INSERT INTO `notes_value` ( `style_color`, `note_id`, `value`, `created_at` )
VALUES ('1893300667', '1', 'yes', NOW())
ON DUPLICATE KEY UPDATE value = 'no',
('1893300667', '2', 'yes', NOW())
ON DUPLICATE KEY UPDATE value = 'maybe';
我是否必须单独INSERT
或如何检查重复项然后更新value
其各自的note_id
?这只是语法错误的情况吗?
编辑
从到目前为止的答案来看,我似乎不清楚我是否需要能够一次更新多个值。ON DUPLICATE
如果我需要用不同的变量更新多个值,我不明白我怎么能在最后得到。