所以我有一个表单,可以通过其 ID(自动递增列(主键))从数据库中获取数据,并<input>
通过值属性显示标签中的所有字段。当我提交表单时,如果 ID 列中的 ID 不存在,我希望它插入一个新行,如果它存在,我想用相同的 ID 更新行中的其余数据。
我一直在尝试对此进行研究,但似乎没有人在做我想做的事情,它总是略有不同。我找到了一个 REPLACE INTO 并创建了它,如下所示:
$sqlString = 'REPLACE INTO coursework
SET cwID=`'. $cwID .'`,
cwTitle=`'. $cwTitle .'`,
cwContent=`'. $cwContent .'`,
cwProgress=`'. $cwProgress .'`,
cwDue=`'. $cwDue .'`;
所有 $cw[] 变量都是从 $_POST 方法接收的内容。
我不断收到错误代码:1054-'字段列表'中的未知列'6'-“未知列'6'”是mysql试图调用$cwID($_POST ['cwID']的值)而不是cwID列(这是我的表的主键)。我觉得我缺少一些简单而愚蠢的东西,但我以前从未使用过这种 REPLACE INTO 方法。
我看到了一个帖子INSERT IGNORE INTO
,INSERT ... ON DUPLICATE KEY UPDATE
但是这两个听起来都比我要找的更具破坏性。
我只想确保如果 cwID 存在并且自动增量保持不变,则更新表,或者如果没有 ID,则添加新行。我应该只运行一个 SELECT 查询来查看它是否存在并适当地插入/更新吗?