【发布时间】:2012-01-30 14:36:52
【问题描述】:
我正在 PHP 中执行插入 MySQL 查询,如下所示:
$inserto= sprintf("INSERT INTO processing (orderid, ordert, usr, status, date, orderType) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($OID,"int"),
GetSQLValueString($tempbody,"text"),
GetSQLValueString($_COOKIE[TENNuser],"text"),
GetSQLValueString("0","int"),
GetSQLValueString(date("d-m-Y"),"text"),
GetSQLValueString('1','int'));
有时它可以正常工作,有时我会收到重复输入错误。我知道为什么会这样,这是因为某些 orderid 有时在技术上是相同的(这是正常的)。问题是 orderid 不是主键。我有一个自动递增的“id”字段,这是主键。
知道会发生什么吗?
【问题讨论】:
-
只要您有任何定义为“唯一”的索引并插入(显然)重复记录,就会出现重复错误。它不仅限于主键字段。
-
一定是星期一的事情,我完全忘了检查索引,它仍然设置为 orderid 字段。修复。 :) 谢谢!