2012-07-12 76 views
1

我有和this几乎相同的问题。PHP PDO :: lastInsertId()和ATTR_PERSISTENT

基于那篇文章,我知道PDO :: lastInsertId()在从不同连接调用时是安全的。但是,如果您想在该连接期间使用PDO :: lastInsertId(),是否意味着PDO::ATTR_PERSISTENT => true应该而不是在PDO构造函数中使用?如PDO Connections and Connection Management所述,如果我需要使用PDO :: lastInsertId(),那么我的应用程序就不得不忍受“每次脚本需要与数据库交谈时建立新连接的开销”。

回答

1

不,这并不意味着。

在php脚本结束工作后,谁会使用相同的连接无关紧要。重要的是,您将拥有由此执行的最后插入的ID,而不是另一个连接。

因此,请随时将其与永久性和非永久性连接一起使用。

+0

感谢您的快速响应。这是你的解释,还是你可以指向我明确表示的文档中的某个地方? – 2012-07-12 05:42:52

+0

@Alien Bishop:我怀疑文档中有一些明确的陈述。很明显,'lastInsertId()'返回当前连接的最后一个ID。像1 + 1一样简单。无论连接是从哪里获得的,也不管它在哪里。 – zerkms 2012-07-12 05:45:55

+0

没错。那么,如果Alice和Bob共享相同的连接,会发生什么? Alice插入,Bob插入,Bob调用lastInsertId(),Alice调用lastInsertId()。既然他们有相同的连接,Alice不会得到错误的结果? – 2012-07-12 05:49:10