Ne yapmaya çalışıyorum youtube, video id (http://www.youtube.com/watch?v=53iddd5IcSU) nasıl işleyeceğini benzer benim web sitesinde makaleler için 12 karakter kimliği oluşturmaktır. Şu anda ben bir MD5 hash üreten yaşıyorum ve daha sonra bunu böyle 12 karakter kapma:
$ArticleId = substr(MD5("Article".$currentID),10,12)
$ CurrentID'yi veritabanı (örneğin 144) gelen sayısal kimliği nerede
Ben bir yinelenen $ articleID içine çalışacağını biraz paranoyak değilim, ama bu olacağını şansı gerçekçi nelerdir? Ve aynı zamanda, benim veritabanında sütun benzersiz olduğunu varlık, nasıl çirkin bir hata atılır kalmadan bu nadir senaryo işleyebilir?
P.S. Ben ilk 5000 $ articleID yıllardan içindeki çiftleri kontrol etmek için küçük bir script yaptı ve yok edildi.
EDIT: Ben base64_encode karmaları bakmak beğenmiyorum ben yaptım:
function retryAID($currentID)
{
$AID = substr(MD5("Article".$currentID*2),10,12);
$setAID = "UPDATE `table` SET `artID` = '$AID' WHERE `id` = $currentID ";
mysql_query($setLID) or retryAID($currentID);
}
$AID = substr(MD5("Article".$currentID),10,12);
$setAID = "UPDATE `table` SET `artID` = '$AID' WHERE `id` = $currentID ";
mysql_query($setAID) or retryAID($currentID);
AID sütun eşsiz olduğundan mysql_query bir hata atar ve retryAID fonksiyon benzersiz bir kimliği bulacaksınız ...