PHP查询问题

时间:2012-09-15 10:42:22

标签: mysql

我有这个查询,我想将数据插入两个表。

它插入第一个但不是第二个,任何想法为什么?

$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')") ;

3 个答案:

答案 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个字符)并有助于减少潜伏在屏幕右侧的错误。