2010-05-09 50 views
2

我使用PDO和保存结果插入一条记录在$result我作为一个布尔获取刚添加使用MySQL记录ID准备语句

$result = $addRecord->execute(); 

if ($result){ 
    //add successful 
} else { 
    //add unsuccessful 
} 

我想也得使用记录id刚刚添加。在表中,每条记录都有一个名为idauto_incremented字段。我试过这样做

$new_id = $result['id']; 

但似乎$result实际上并不持有记录添加。有人可以证实这一点,我将如何访问刚刚添加的记录?

请注意,有几个人可能同时添加到同一张表中,所以我需要一些非常准确的东西。

回答

4

PDO::lastInsertId()应该工作。

编辑:(没看到你的其他部分)

的MySQL mantains上http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id最后插入的ID。所以如果其他东西插入一行,它应该只会返回意想不到的结果,如果该查询是使用相同的连接执行的(如持久连接)

+0

但正如我在问题中所说,如果有几个人在同一时间添加,那么会不会返回一个可能由其他人插入的ID?请参阅我的问题中的最后一行 – dmontain 2010-05-09 00:45:36

+1

@dmontain:否每个连接都有一个请求,每个请求都有自己的连接,所以这不会是一个问题。 – ryeguy 2010-05-09 01:00:30

+0

@dmontain添加了有关并发性的信息,包括指向MySQL文档的链接。 – Reece45 2010-05-09 01:00:48