-5

我现在有一个大约 800 列的 mysql 数据库,并且经常添加到它。

如何添加一个包含 4 个字母和数字的随机字符串的新字段,例如:4h3k

我也不希望重复发生。

谢谢各位!

编辑

哦,我的意思是行不是列。

800 行!

4

2 回答 2

4

正如评论已经表明的那样。为什么你会想要 800 列?似乎是您的数据库结构中的一个主要缺陷。也许您可以解释您要存储的内容,以便我们可以帮助您设置适当的结构。800(随机!)列永远不可能是你想要的。

如果您确实打算保留此结构,则可以使用SHOW COLUMNS FROM mydb.mytable WHERE FIELD='newcolname'它来查看它是否已经存在。

但我强烈建议重新考虑您的数据库模型。自从它的随机列以来,您甚至如何从中选择东西?您总是使用 select * 然后循环遍历所有列?

于 2012-12-18T10:03:53.593 回答
0

这也许可以帮助你。

// first  u generate string with numbers and letters with length 4 
function genRandomString() {
$length = 4;
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$string = '';    

for ($p = 0; $p < $length; $p++) {
    $string .= $characters[mt_rand(0, strlen($characters))];
}

 return $string;
 }
  echo genRandomString();        // will echo one radom string like  4h8l
 // second check if the random string exist in table then use new generated string
 $new_random_string = genRandomString() ;
 $strings = mysql_query("SELECT `string` FROM `table`");
 while ($string = mysql_fetch_row($strings)) {

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

   echo genRandomString() ;

 }

 mysql_query("INSERT INTO `table` (`string`) VALUES ('".$new_random_string."')");
于 2012-12-18T10:26:48.430 回答