【发布时间】:2011-10-29 13:03:10
【问题描述】:
您好,我有一个函数可以生成一个可以正常工作的随机字符串。我想做的是将该字符串作为主键存储在我的数据库中。问题是我首先需要确保字符串在存储之前是唯一的。这是我到目前为止所拥有的。我确定我需要一个循环,直到 result =
//generate random slug
function genRandomString($length=10,$characters = '0123456789abcdefghijklmnopqrstuvwxyz',$string = '') {
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))];
}
return $string; }
//store slug into variable
$slug = genRandomString('5');
//select the slug that is equal to our slug
$qry = "SELECT `slug` FROM `drink_data` WHERE `slug` = '$slug'";
$result = mysql_query($qry);
//if reslut make a new slug (this dosen't recheck the new slug which is a problem)
if($result >= 0){
$slug = genRandomString('5');
}
【问题讨论】:
-
我对此很陌生,我查了一下 GUID 是什么,你能提供一个例子吗?
-
附带说明,如果 db 中的该字段是主字段或唯一字段,则如果您尝试输入重复项,则 db 将出错。无论您使用哪种独特的生成器,您都可以使用它。
-
@battal,是的,这个想法是为了防止显示数据库错误:)
-
您想以任何方式隐藏 db 错误,我的意思是下面 Stefan Mai 的回答中的用法 :)
-
最后,我一直在寻找这个链接:kevin.vanzonneveld.net/techblog/article/…(也在 SO 问题stackoverflow.com/questions/4153628/… 中提到)