我现在有一个大约 800 列的 mysql 数据库,并且经常添加到它。
如何添加一个包含 4 个字母和数字的随机字符串的新字段,例如:4h3k
我也不希望重复发生。
谢谢各位!
编辑
哦,我的意思是行不是列。
800 行!
正如评论已经表明的那样。为什么你会想要 800 列?似乎是您的数据库结构中的一个主要缺陷。也许您可以解释您要存储的内容,以便我们可以帮助您设置适当的结构。800(随机!)列永远不可能是你想要的。
如果您确实打算保留此结构,则可以使用SHOW COLUMNS FROM mydb.mytable WHERE FIELD='newcolname'
它来查看它是否已经存在。
但我强烈建议重新考虑您的数据库模型。自从它的随机列以来,您甚至如何从中选择东西?您总是使用 select * 然后循环遍历所有列?
这也许可以帮助你。
// 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."')");