Re: Getting last record ID created from DB

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

 



On Fri, March 16, 2007 10:37 pm, Rod Person wrote:
> select user_id from t_users where user_id = (select max(user_id) from
> t_users)

Noooooooooooooooooooooo!

This is a "race condition"

Imagine, if you will, that *TWO* users sign up and create characters
on your site at the exact same time:

Lee                         Francis
insert into user...         insert into user...
auto_inc: #5                auto_inc: #6
select max(user_id)         select max(user_id)
#6                          #6

You'll tell BOTH of them that they are #6, even though Lee was really #5.

Yes, this can easily happen.

In fact, on a moderately busy site, it *WILL* happen quite quickly.

You REALLY do want to use http://php.net/mysql_insert_id to find out
the last ID used FOR THIS CONNECTION.

The MySQL guys worked really really really hard to do this right.

Don't be an [bleep] and not use their hard-won experience.

-- 
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some starving artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux