【发布时间】:2012-07-06 09:17:43
【问题描述】:
我有一个以 descriptionId 作为主键的 mysql 表,它是自动递增的。它还有一个“内容”和一个“价格”列等等。
我还有一个由多个输入框组成的表单,其中包含我的描述表中价格和内容列的当前数据库值。提交表单后,我想用新值更新表格,如果删除了任何输入框,则必须从表格中删除记录。
我还设法定义了三个数组来保存我所有表列的值。这些数组如下:$descrId,$content,$price
当我提交表单时,php 文件会遍历这些数组并执行以下查询:(我已经验证了这些数组,因此它们可以正常工作)
INSERT INTO
description(descriptionId,content,price,orderNo,salesPerson,dateTime,updated)
VALUES('{$descrId[$k]}','{$content[$k]}','{$price[$k]}','{$orderId}','{$sale}',NOW(),1 )
ON DUPLICATE KEY UPDATE content=VALUES(content),price=VALUES(price),updated=1, dateTime=NOW()
但是,只要我按下提交,此查询就会不断重复值。
感谢您的宝贵时间......
【问题讨论】:
-
我没有看到检查重复项的 KEY,还是我遗漏了什么?
-
在那些不想重复的列上是否有唯一键?自动增量时也不需要插入
descriptionId。 -
键是 descriptionId 广告是重复键部分中唯一考虑的字段。您确定 descriptionId 是重复的,还是只是其他数据?
-
“descriptionId 作为主键并且它会自动递增”...如果您的主键是自动递增的,您希望它如何重复?!跨度>
-
所有其他字段都是重复的,但不是主键,这意味着我将相同的值插入到我的表中。它们在我的表中没有重复,但我的表中有重复的行(当然 descriptionId 除外)