检索其他页面的自动增量ID

时间:2013-10-20 11:42:07

标签: php mysql

我有一个带有auto_incrementing id的两个表

MAINTENANCE
maintenance_id int(11) NOT NULL AUTO_INCREMENT,
description varchar(50)
PRIMARY KEY (maintenance_id)

我在maintenance.php页面上有一个生成maintenance_id的查询。

$sql = "insert into maintenancereq (maintenance_id,description)
        values('','description')";

我有一个不同的php页面,我需要那个maintenance_id。我将如何在maintenance.php页面上查找为不同页面上的其他查询生成的ID?

3 个答案:

答案 0 :(得分:1)

通过一种方法来管理持久性数据:

  1. 您可以使用会话$_SESSION,在下一页中提供持久数据

  2. 您可以从maintenance.php重定向到ID为链接的下一页,您的链接看起来像http://myurl?maintenanceId=1&blah=blah

  3. 然后将通过$_GET

    获取ID
    if( isset($_GET['maintenanceId']) && is_numeric($_GET['maintenanceId']) ) {
     // do blah blah
    }
    

答案 1 :(得分:1)

您所要做的就是使用

mysql_insert_id();
你的代码中的

。 这将检索前一个查询(通常是INSERT)为AUTO_INCREMENT列生成的ID。

$sql = "insert into maintenancereq (maintenance_id,description)
        values('','description')";

只需执行上述查询并使用mysql_insert_id();.您可以将此值放在url字符串上,并从下一页获取值。或者,您可以将其放入会话,然后从会话中检索它。

看看here

答案 2 :(得分:0)

MySQL为这种情况提供了LAST_INSERT_ID()函数。

执行

SELECT LAST_INSERT_ID()

插入一行后,结果将是自动生成的ID。请注意,此查询应在插入后直接执行,因为必须使用相同的连接。然后必须将检索到的值传递给另一个页面,例如,通过参数或会话变量。如果使用相同的连接,另一个客户端在同一个表中的另一个INSERT没有问题,正如文档所述:

  

每个客户端将收到客户端执行的最后一个语句的最后插入ID

有关详细信息,请参阅MySQL Documentation about that function