現在、約 800 列の mysql データベースがあり、頻繁に追加しています。
4 つの文字と数字のランダムな文字列を含む新しいフィールドを追加するにはどうすればよいですか? 例: 4h3k
重複も発生させたくありません。
ありがとうチャップス!
編集
OH MA GAD NO 私は列ではなく行を意味します。
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."')");