Re: Creating alphanumeric id for a table

From: Date: Fri, 11 Sep 2009 12:06:47 +0000
Subject: Re: Creating alphanumeric id for a table
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-297891@lists.php.net to get a copy of this message
On Sep 11, 2009, at 3:50 AM, Ashley Sheridan <ash@ashleysheridan.co.uk> wrote:
On Fri, 2009-09-11 at 00:19 -0400, Phpster wrote:
Note that this approach has risks around race conditions. Anytime you have a construct for the id you run the risk of having it create duplicate ids. You will need to handle that. Bastien Sent from my iPod On Sep 10, 2009, at 6:49 PM, Ben Dunlap <bdunlap@agentintellect.com> wrote:
I assume that I can get increment value/sequence from db (I used harcoded increment value in the code above (generate_id(1))), but I don't know how I can get this incremental value from db.I use mysql 5.0.
If you're thinking of retrieving the newest value of an AUTO_INCREMENT column, immediately after inserting a row, there are different ways to do this depending on how you're connecting to MySQL. PDO, for example, has a method called lastInsertId(): http://us2.php.net/manual/en/pdo.lastinsertid.php And the mysql_* family of functions has mysql_insert_id(), etc. Ben -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Not if you use the functions built specifically for that, i.e. the ones that Ben mentioned. In no circumstances should you ever do a "SELECT MAX(id) FROM table". I've seen this done so many times by people who should know better, and they even saw no problems when they ran tests (that was, they tested the systems themselves, and only themselves) but then it all fell down as soon as multiple users tried to use it. Thanks, Ash http://www.ashleysheridan.co.uk
I totally agree. Ufortunately, my boss would not agree and the one app I have to support is full of race conditions. I told them from the beginning that it would not work and under any load ( btw the max app load is about 40 people on a server, don't ask, it would make me sad) we get errors in the app. I get to spend a few hours a week fixing this crap! I did just want to point out that there is risk in not using auto numbers or other unique id mechanisms if you don't pay attention.
Bastien Sent from my iPod

« previous php.general (#297891) next »