在PHP mysql_query()中一次运行两个MySQL查询

时间:2012-10-26 05:18:55

标签: php mysql sql

我需要使用MySQL的SELECT LAST_INSERT_ID()函数来获取最后插入行的ID。 当我尝试运行时: -

  mysql_query("
    INSERT INTO `posts`
           (`user`, `body`, `time`, `pageID`)
           VALUES('pachykutty', 'testMessage', '2012-10-26 04:59:43', 1);
    SELECT LAST_INSERT_ID();");

给我错误,但当我像这样单独运行两个查询时: -

mysql_query("
INSERT INTO `posts`
       (`user`, `body`, `time`, `pageID`)
       VALUES('pachykutty', 'testMessage', '2012-10-26 04:59:43', 1)");
mysql_query("SELECT LAST_INSERT_ID()");

没关系。我担心如果两个客户端同时运行查询,它们的LAST_INSERT_ID将发生冲突。所以我想毫不拖延地一起运行这两个查询。有什么办法吗?

1 个答案:

答案 0 :(得分:3)

你可以使用那样的查询

mysql_query("
INSERT INTO `posts`
       (`user`, `body`, `time`, `pageID`)
       VALUES('pachykutty', 'testMessage', '2012-10-26 04:59:43', 1)");
$var =  mysql_insert_id();

mysql_insert_id对最后执行的查询起作用。

所以不用担心并使用上面的代码。