|
Posted by Jochem Maas on 10/11/05 19:06
Dan McCullough wrote:
> Yes I believe that is what Richard was saying about "Trap the INSERT
> error", you should get an error back from the database about having a
> problem with the insert instead of showing that error you will want to
> add some logic that when that error occurs you simply generate another
> number.
I concur! the OP has the idea :-)
>
> On 10/11/05, aaronjw@martekbiz.com <aaronjw@martekbiz.com> wrote:
>
>>Hi Richard,
>>
>>Ok... I do already have a Unique index on the column but this process is
>>something that I cannot echo out the error code to the user. The code is
>>generated on the fly when an order an is placed so you can see... I can't
>>echo out the error to the customer.
>>
>>Can I do an if statement IF an error is returned to try generatre another
>>randon code and keep going until one is available? I can do this all
>>intenrally without the customer knowing/seeing anything?
>>
>>Hope I am making some sense. Not trying to confuse the issue.
>>
>>Thanks. Appreciate your thoughts.
>>
>>Aaron
>>
>>
>>>On Mon, October 10, 2005 3:24 pm, Dan McCullough wrote:
>>>
>>>>create a function to check if the rndnumber=couponcode row count = 0
>>>>if not then redo rndnumber if it does = 0 then insert rndnumber
>>>
>>>Noooooooooooooooooooooooooooo!
>>>
>>>You are creating a RACE CONDITION in which ONE user might generate a
>>>'valid' code, and ANOTHER user might generate a 'valid' code AT THE
>>>SAME TIME, and then they BOTH get the same coupon code.
>>>
>>>The probability of this is very very very low, but still NOT zero.
>>>
>>>And it's the kind of thing that won't show up in testing, but sure as
>>>God made little green apples, it WILL happen at the worst possible
>>>time after you "go live"
>>>
>>>The database engine has a *TON* of code in it to avoid this kind of
>>>Bad Thing happening.
>>>
>>>Use it.
>>>
>>>create a UNIQUE INDEX on the column that needs to be unique.
>>>
>>>Trap the INSERT error.
>>>
>>>--
>>>Like Music?
>>>http://l-i-e.com/artists.htm
>>>
>>>--
>>>PHP General Mailing List (http://www.php.net/)
>>>To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>
>>
>
[Back to original message]
|