我曾多次尝试使用“CREATE TABLE”和“ALTER TABLE ... ADD”和“UPDATE..SET ... WHERE”的组合来制作一个包含两个部分的在线调查。第一部分是你添加了一些用户输入,第二部分是相同的 - 你输入了一些值。我已经清楚地知道,无论出于何种原因,当我使用上述SQL语句组合时,来自问卷第二部分的用户输入不会被输入MySQL。第二部分调查的字段仍为BLANK。我已经尝试了几十次。失败的其他一切,我决定使用所有输入文本字段CREATE TABLE(换句话说,我不只是使用第一部分中的文本字段,然后使用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”结合使用。好的想法,拜托?
答案 0 :(得分:0)
INSERT
肯定会创建2行,特别是如果你没有对ID列进行PK限制并且在两个INSERT语句中都使用它。
在您填写LEADACTOR和STUDIONAME的第二个声明中执行UPDATE
e.g。 UPDATE hollywoodmovies SET StudioName = $studioname, LeadActor = $leadactor WHERE ID = $uniqueid