我编写了一段代码,用于创建一个随机字符串,对于MySQL表中的每一行都是唯一的。但是我不确定它是否100%有效,并确保一个独特的public_key(假设所有选项都没有制作)。
$id = mysql_insert_id();
$public_key = rand_string(8);
function insertPublicKey($key, $post) {
mysql_query("UPDATE posts SET public_key = '$key' WHERE id = '$post'");
}
function createPublicKey ($key, $post) {
$query = mysql_query("SELECT * FROM posts WHERE public_key = '$key'");
if(mysql_num_rows($query) == 0) {
insertPublicKey($key, $post);
} else {
$public_key = rand_string(8);
createPublicKey ($public_key, $post);
}
}
createPublicKey ($public_key, $id);
我想如果一些PHP技术人员可以查看代码,并确认这总是会创建一个唯一的密钥。
答案 0 :(得分:0)
您可以使用uniqid来确保您拥有唯一的密钥:
string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )