Php 插入/更新问题(重复相同记录,不能再输入)

Php 插入/更新问题(重复相同记录,不能再输入),php,mysql,Php,Mysql,我在这里有点困惑,我的代码有点太长,无法全部发布,但我会提供一个手头操作的逻辑列表,如果有帮助的话,可以在需要的地方提供代码,但问题很奇怪,我认为这与代码无关。这是文章网站的标准上传表单 首次加载时,分配随机物品ID 检查物品ID是否已存在。如果是,重复步骤1 保存(提交)时,插入article\u ID(唯一需要的值[出于测试目的],其余值可以是NULL) 检查输入的任何其他字段的内容,如果有输入的内容,则更新其中的article\u ID=$article\u ID 这是一个非常简单的系统,

我在这里有点困惑,我的代码有点太长,无法全部发布,但我会提供一个手头操作的逻辑列表,如果有帮助的话,可以在需要的地方提供代码,但问题很奇怪,我认为这与代码无关。这是文章网站的标准上传表单

  • 首次加载时,分配随机
    物品ID

  • 检查
    物品ID
    是否已存在。如果是,重复步骤1

  • 保存(提交)时,插入
    article\u ID
    (唯一需要的值[出于测试目的],其余值可以是
    NULL

  • 检查输入的任何其他字段的内容,如果有输入的内容,则更新其中的
    article\u ID=$article\u ID

  • 这是一个非常简单的系统,用
    文章ID
    制作一个文章模板,其中所有其他字段都可以
    NULL
    。用户在保存过程中逐段添加内容,直到输入所有字段,以便发布文章

    然而,我第一次让它工作时,分配了一个
    文章ID
    ,并插入了模板。现在我无法插入任何其他记录,更奇怪的是,如果我删除该记录,然后使用新的
    文章ID
    创建一个新的表单实例并插入,它只会使用旧的
    文章ID
    不断添加相同的记录,即使表单没有仍然存储旧的
    文章ID
    的会话变量

    有人有过类似的经历吗

    数据库结构

      `article_ID`            int(10)      NOT NULL,
      `author_ID`             int(5)       NOT NULL,
      `article_title`         varchar(50)  NOT NULL,
      `article_subtitleshort` varchar(120) default NULL,
      `article_subtitlelong`  varchar(180) default NULL,
      `article_category`      varchar(20)  NOT NULL,
      `article_featureimage`  varchar(15)  default NULL,
      `article_icon`          varchar(15)  default NULL,
      `article_publishdate`   varchar(12)  default NULL,
      `article_lastsavedate`  varchar(12)  NOT NULL,
      `article_status`        varchar(11)  NOT NULL default 'unpublished',
      `article_firstimage`    varchar(15)  default NULL,
      `article_intro`         varchar(600) default NULL,
      `article_firsttext`     blob,
      `article_secondimage`   varchar(15)  default NULL,
      `article_secondtext`    blob,
      `article_thirdimage`    varchar(15)  default NULL,
      `article_youtube`       varchar(50)  default NULL,
      `article_gallery`       varchar(10)  default NULL,
      PRIMARY KEY  (`article_ID`)
    

    相关代码

    我怀疑插入失败,因为您正在将INTs作为VARCHARs插入。按如下方式更改-删除将其作为
    VARCHAR
    错误传递的单引号

    当您传递
    $article\u ID
    即删除单引号时,还要验证SELECT语句是否会返回记录,因为您使用的是相同的逻辑。也不需要检查随机值

    请对物品ID使用
    自动增量
    ,而不是随机生成值

     mysql_query("INSERT INTO articles (author_ID) VALUES ($author_ID)");
    

    article\u ID
    将填充一个唯一的值

    请给我们看一些代码。相关代码:@Prix好的,我不知道。因为有一个文件系统使用该ID,如果要使用自动递增,那么如果有47条记录,则删除第47条,然后再创建一条,它将被分配47,但这将使它指向旧文章的文件。随着文章模板的创建(第一次插入),我如何在使用其他字段的内容更新该记录之前检索自动递增的ID?否则,请尝试以下查询:mysql\u查询(“插入到文章(文章ID,作者ID)值(”.$article_ID.,“$author_ID.”);好的,这允许我添加一条额外的记录,但是同样的问题也出现了。为第二条记录输入了初始ID,之后就不再输入了。@Marijke-这将做什么?等等,我测试了你的代码,我想我通过在插入后取消设置变量来修复它。哪些变量$需要保留article_ID,因为它用于以后向其他字段添加内容时的更新语句。