Re: Help with logic :(

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

 



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
>
>

-- 
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