PHP MYSQL中的唯一公共标识符

时间:2014-06-14 08:57:55

标签: php mysql

我编写了一段代码,用于创建一个随机字符串,对于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技术人员可以查看代码,并确认这总是会创建一个唯一的密钥。

1 个答案:

答案 0 :(得分:0)

您可以使用uniqid来确保您拥有唯一的密钥:

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )