Php 主键为自动递增的重复输入错误?

Php 主键为自动递增的重复输入错误?,php,mysql,pdo,Php,Mysql,Pdo,我得到了主键的重复输入错误,这是表中定义的自动增量字段 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 1' in 我试图在几乎同时向表中添加一个条目。这可能是原因,但我不确定 实际上,在后台运行多个ajax调用,它们有时试图在表中同时添加具有相同主键的条目

我得到了主键的重复输入错误,这是表中定义的自动增量字段

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: 
Integrity constraint violation: 1062 Duplicate entry '0' for key 1' in
我试图在几乎同时向表中添加一个条目。这可能是原因,但我不确定

实际上,在后台运行多个ajax调用,它们有时试图在表中同时添加具有相同主键的条目

我想这就是sql引擎自动生成相同主键的问题

Mysql表类型:MyISAM

如何解决这个问题

表定义:结果id是主键字段

我已经为数据库条目编写了writenPDO包装器,尽管我使用的是去年的这个数据绑定对象,没有发现任何问题。附上评论中要求的部分

注意: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();

您已经根据sanpshot在主键中设置了结果id

但我想你还没有设定是自动递增的

请使用自动增量设置主键

您已经根据sanpshot在主键中设置了结果id

但我想你还没有设定是自动递增的


请设置具有自动增量的主键,首先删除id=1的行(第一条记录),然后通过将id字段的自动增量属性设置为“True”(通过单击自动增量复选框并保存)编辑表结构。

首先删除id=1的行(第一条记录),然后通过将id字段的Auto_Increment属性设置为True(单击Auto_Increment复选框并保存)来编辑表结构。

确保它是((Auto_Increment))

确保它是((Auto_Increment))

我在发布这个问题之前看过这篇文章。他的解决方案是删除数据库并重新创建数据库,这不是一个解决方案,我会经常遇到这个问题,因为表中有相同的时间项欢迎使用堆栈溢出!请写一个完整的答案,而不是仅仅提供一个链接。我在发布这个问题之前看到了这篇文章。他的解决方案是删除数据库并重新创建数据库,这不是一个解决方案,我会经常遇到这个问题,因为表中有相同的时间项欢迎使用堆栈溢出!请写一个完整的答案,而不仅仅是提供一个链接。向我们展示您正在执行的SQL查询,表定义也向我们展示“$this->relationmap”。向我们展示您正在执行的SQL查询,表定义也向我们展示“$this->relationmap”。