首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机字符串的循环

问随机字符串的循环
EN

Stack Overflow用户
提问于 2012-07-26 17:01:12
回答 4查看 202关注 0票数 0
代码语言:javascript
复制
$new_random_string = substr(str_shuffle('0123456789'), 0, 2);

$strings = mysql_query("SELECT `string` FROM `table`");
while ($string = mysql_fetch_row($strings)) {

if ($new_random_string == $string[0]) 

// generate new random string

}

mysql_query("INSERT INTO `table` (`string`) VALUES ('".$new_random_string."')");

我想要一个循环来生成一个新的字符串,以防它已经存在于数据库中。谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-26 17:06:13

代码语言:javascript
复制
function gen_string() {
   return substr(str_shuffle('0123456789'), 0, 2);
}

do {
$rand = gen_string();
$query = mysql_query("SELECT count(*) as rows FROM `table` where `string` ='".$rand ."'; ");

$row = mysql_fetch_row($query);

} while ($row['rows']>0);

mysql_query("INSERT INTO `table` (`string`) VALUES ('".$rand."')");

它没有经过测试,但应该可以工作。

票数 0
EN

Stack Overflow用户

发布于 2012-07-26 17:04:51

看起来您正在尝试生成随机字符串并将其插入到数据库中,但有一个限制,即不能有重复项。

为了确保不会有重复,最好的方法是对该列执行create a UNIQUE index。然后,数据库将确保永远不会有重复的值。

要插入新值,您可以在插入之前查询数据库,查看特定字符串是否已存在。或者,您可以继续尝试插入并查看它是否有效-唯一约束将阻止插入任何重复项。

票数 1
EN

Stack Overflow用户

发布于 2012-07-26 17:05:50

代码语言:javascript
复制
while(1)
{
   // generate new random string
   if(mysql_result(mysql_query("SELECT COUNT(*) FROM `table` WHERE `string` ".$new_random_string), 0) == 0){
       mysql_query("INSERT INTO `table` (`string`) VALUES ('".$new_random_string."')");
       break;
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11665819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档