我需要在SQL表中添加新项并更新旧项

时间:2014-04-10 06:42:18

标签: mysql sql

这可能是一个愚蠢的问题但老实说让我难过。

我有一个现有的表,我想用新项目更新。但是,如果旧项目在其他地方被更改,那么我希望它也会自动更新。

我已将$ eid设置为唯一标识符,因此表格不会重复。我用它来添加新项目。

mysqli_query($con,"INSERT INTO `notification` (`nid` ,`eid` ,`subject` ,`active` ,`date`)VALUES (NULL , '$eid[$i]', '$subject[$i]',  '$active[$i]', '$eventdate[$i]')");

使用我的第二个查询,我正在尝试使用当前更新的信息更新现有表。

mysqli_query($con,"UPDATE `notification` SET `nid`=NULL,`eid`='$eid[$i]',`subject`='$subject[$i]',`active`='$active[$i]',`date`='$eventdate[$i]' WHERE `active` = 0");

然而,第二个查询似乎不起作用。

2 个答案:

答案 0 :(得分:1)

有关MySQL抛出的错误的更多细节?

但是,如果列nid是您的主键,则不能是NULL

如果您不想更新它,只需在更新查询中跳过它:

mysqli_query($con,"UPDATE `notification` SET `eid`='$eid[$i]',
`subject`='$subject[$i]',`active`='$active[$i]',`date`='$eventdate[$i]' 
WHERE `active` = 0");

答案 1 :(得分:0)

试,

mysqli_query($con,"UPDATE notification SET nid= '',eid='".$eid[$i]."',subject='".$subject[$i]."',active='".$active[$i]."',date='".$eventdate[$i]."' WHERE active = '0'");