我收到主键重复输入错误,主键是表中定义的自动增量字段。
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry '0' for key 1' in
我试图几乎同时向表中添加一个条目。这可能是可能的原因,但我不确定。
实际上,在后台运行多个 ajax 调用,他们有时会尝试同时在表中添加具有相同主键的条目。
我猜这是sql引擎自动生成相同主键的问题。
Mysql 表类型:MyISAM。
可以做些什么来解决这个问题?
表定义:result_id 是主键字段
我已经为数据库条目编写了 PDO 包装器,尽管我使用的是去年的这个数据绑定对象并且没有发现问题。根据评论中的要求附加一些部分。
注意:ID(主键)不是 INSERT 语句的一部分。
$valueList = "";
$query = 'INSERT INTO ' . $this->tableName . ' (';
foreach ($this->relationMap as $key => $value) {
eval('$actualVal = &$this->' . $value . ';');
if (isset($actualVal)) {
if (array_key_exists($value, $this->modifiedRelations)) {
$query .= $key . ', ';
$valueList .= ":$value, ";
}
}
}
$query = substr($query, 0, strlen($query) - 2);
$valueList = substr($valueList, 0, strlen($valueList) - 2);
$query .= ") VALUES (";
$query .= $valueList;
$query .= ")";
//prepare and execute codes - here
$this->ID = $this->objPDO->lastInsertId();