【问题标题】:Duplicate entry '19' for key 'PRIMARY' insert php mysql键'PRIMARY'的重复条目'19'插入php mysql
【发布时间】:2018-05-09 20:49:11
【问题描述】:

我对 PHP 很陌生。 目前我正在尝试通过 PHP 向 mysql-database 中的表插入新行。

到目前为止,只有 7 个条目,ID 为 1-7。 不过,无论我为 ID 列使用什么(更高的)数字,我总是从浏览器返回“Duplicate entry '19' for key 'PRIMARY'”:

Error: INSERT INTO tbl_Fotografen (FotografenID, FotografAnrede, FotografVorname, FotografNachname, Fotostudio, FotografStraße, FotografPLZOrt, FotografBundesland, FotografBereich, FotografFestnetz, FotografMobil, FotografEMail, FotografWebsite, Honorar, KmPauschale, FotografIBAN, Besonderheiten, aktiv) VALUES (19, ' Herr', 'Konrad', 'König', 'keins', '', '', 'Bayern', '', '', '', '', '', '', '', '', ' ', '1');
键“PRIMARY”的重复条目“19”

本例中的 PRIMARY KEY 是第一列 (FotografenID)。

当我复制语句并(在删除刚刚创建的行之后)直接在 phpmyadmin 中输入完全相同的内容时,我没有收到此错误消息。

有什么问题吗? (主键是 INT UNSIGNED,NOT NULL,AUTO-INCREMENT) 我也不明白的是,尽管它“认为”已经有一个带有这个主键的条目,但为什么它仍然输入。

感谢您的帮助!

【问题讨论】:

  • 会不会因为某种原因,查询被执行了两次?
  • 如果是自增,为什么要显式指定而不是让它自动填充?
  • 亲爱的 rickdenhaan,我也想过这个问题。为了测试我在代码中放置了一个 if 语句,以防成功插入数据,然后在错误之前显示在浏览器中。但是,尽管数据在数据库中,但没有显示成功消息。
  • 亲爱的 Barmar,它不接受空列。然后它说您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 ''Herr'、'Konrad'、'König'、'keins'、''、''、'Bayern'、''、'' 附近使用的正确语法'', '', '', '', ' 在第 1 行。此外,我有时需要能够插入旧数据,例如ID 丢失但仍然需要保留旧 ID,并且在 mysql 本身中,只要 ID 是“免费的”,我就从来没有遇到过问题。
  • 如果您将NULL 代替19 作为FotografenID 值会发生什么?

标签: php mysqli insert duplicates primary-key


【解决方案1】:

解决了。 答案出现在我的最后一条评论中。 (由于额外的 if 语句,代码被执行了两次)。

【讨论】:

    猜你喜欢
    • 2019-07-21
    • 2015-09-13
    • 1970-01-01
    • 2012-08-18
    • 2012-08-24
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多