我有这个查询,我想将数据插入两个表。
它插入第一个但不是第二个,任何想法为什么?
$result1 = mysql_query("INSERT INTO entries (UserID, FirstName, LastName, EmailAddress, TelephoneNumber, Image, Status) VALUES ('NULL', '$FirstName', '$LastName', '$EmailAddress', '$TelephoneNumber', '$ran2$ext', '0')") ;
$newid = mysql_insert_id($result1);
$result2 = mysql_query("INSERT INTO voting (id, EntryID, item, vote, nvotes) VALUES ('NULL', $newid, 'vt_img353', '0', '0')") ;
答案 0 :(得分:1)
如果您尝试插入null,请不要在其周围使用引号:
INSERT INTO voting
(id, EntryID, item, vote, nvotes)
VALUES (NULL, $newid, 'vt_img353', '0', '0')
正如juergen d正确指出的那样,如果你不想插入一个列,你可以跳过它,但这只有在你先命名要插入的列时才有效。它不适用于:
INSERT INTO voting
VALUES (NULL, $newid, 'vt_img353', '0', '0')
答案 1 :(得分:1)
$result2 = mysql_query("INSERT INTO voting (EntryID, item, vote, nvotes) VALUES ($newid, 'vt_img353', '0', '0')") ;
如果您不想设置列,可以将其保留。您的id
列可能是自动增量列。如果从插入语句中保留它,它将自动填充。
如果您想将其明确设置为NULL
,请保留引号。否则,您可以将列设置为字符串 NULL
答案 2 :(得分:0)
不是答案本身,但非常有用。为了使您的代码更具可读性 - 无论是在IDE中还是在诸如此类的论坛上 - 请记住,您可以缩进它。试试这个:
$result1 = mysql_query("
INSERT INTO entries (
UserID, FirstName, LastName,
EmailAddress, TelephoneNumber, Image,
Status
)
VALUES (
NULL, '$FirstName', '$LastName',
'$EmailAddress', '$TelephoneNumber', '$ran2$ext',
'0'
)
");
这有助于保持合理的线长(我使用120个字符)并有助于减少潜伏在屏幕右侧的错误。