我反复尝试使用“创建表”和“更改表...添加”以及“更新.SET ...位置”的组合来生成包含两个部分的在线调查。第一部分添加了一些用户输入,第二部分是相同的-输入了一些值。对我来说,很清楚,无论出于何种原因,当我使用上述SQL语句组合时,问卷第二部分的用户输入都不会输入到MySQL中。调查第二部分的字段为空白。我已经尝试了数十次。一切都失败了,我决定使用所有输入文本字段创建表(换句话说,我不仅使用了第一部分中的文本字段,然后还使用ALTER TABLE添加了第二部分中的列-否-正如我所提到的,这不起作用)。相反,我尝试的是在我的第一个PHP文件中:
$sql = "CREATE TABLE hollywoodmovies (ID INT(10), Year INT(10),
LeadActor VARCHAR(60), StudioName VARCHAR(20), PRIMARY KEY(ID))";
然后,第二个PHP文件处理了在线调查的第一部分:
$sql = "INSERT INTO hollywoodmovies (ID, Year, LeadActor, StudioName)
VALUES ('$uniqueid', '$year', '$actorname', '$studiolist')";
尽管事实上,在线调查的第一部分只有两个表格字段:ID和YEAR
现在,在调查的第二部分中,我所做的与上述完全相同:
$sql = "INSERT INTO hollywoodmovies (ID, Year, LeadActor, StudioName)
VALUES ('$uniqueid', '$year', '$actorname', '$studiolist')";
尽管事实是我在问卷/调查的第二部分中仍然只有两个表单字段:LEADACTOR和STUDIONAME。
在运行时发生的是,所有期望的字段都被分配了各自的值,这与我使用ALTER TABLE和UPDATE时不同,那时,来自调查第二部分的输入丢失了。所以这很好-到了一定程度。但是,发生的事情是我得到了两个记录(行),而不是一个。在第一个记录中,前两列中有用户输入,但后两列为空白。在第二行中,前两列为空白,但后两列具有数据。有什么办法可以让我只有一个记录,而不是两个? (是否有可能在某处使用NULL词来使空格消失,只给我一个记录?)请记住,我的特定SQL服务器非常麻烦-我不能使用ALTER或UPDATE或其他任何方式,因为我的服务器只是不这样做而已。很喜欢。我只能将CREATE与“ INSERT INTO ... VALUES”结合使用。好的想法,好吗?
最佳答案
INSERT
当然会创建2行,特别是如果您在ID列上没有PK约束并且在两个INSERT语句中都使用了该约束时。
在您要填充LEADACTOR和STUDIONAME的第二条语句上,执行UPDATE
例如UPDATE hollywoodmovies SET StudioName = $studioname, LeadActor = $leadactor WHERE ID = $uniqueid