Re: How to get last insert id safely?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If the first query doesn't fail you can be sure that last_insert_id()
for A while return the ID of his name because

1) "The ID that was generated is maintained in the server on a
per-connection basis. This means that the value returned by the function
to a given client is the first AUTO_INCREMENT value generated for most
recent statement affecting an AUTO_INCREMENT column by that client."
(
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
)

2) When a script use mysql_pconnect() it take a connection and then php
marked this connection as reserved until the script ends.
(http://www.php.net/manual/en/features.persistent-connections.php)


Note : For Apache 1, it's ok according to the doc ("They cause the child
process to simply connect only once for its entire lifespan, instead of
every time it processes a page that requires connecting to the SQL server.
This means that for every child that opened a persistent connection will
have its own open persistent connection to the server.") and I can't
find if it should work also for Apache 2.0 and 2.2

For your information :
http://www.mysqlperformanceblog.com/2006/11/12/are-php-persistent-connections-evil/


"Jacky" <jacky.hf@xxxxxxxxx> wrote:
> Hi All,
> How to get last insert id safely in php with persistent connection to 
> mysql?because there may be larger concurrence requests to the php to query 
> insert statements.Example,the php query following two sql statements:
>
> mysql_query("insert into tb(id,name) values(null,$username)");
> $res = mysql_query("select last_insert_id()");
>
> And in any time,user A insert one row to the table tb,and the same time 
> before user A query last_insert_id(),user B insert another row to the same 
> table too.
> In this situation,will user A or B query last_insert_id() function get the 
> correct id for he/her just insert?
>
> Any ideas?Thanks!
>
> Regards
> Jacky 

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux