我正在创建一个小插件,为每个帖子提供一个序列号,每个序列号必须唯一,我不知道如何检查生成的序列号是否已经在SQL db中。

这是密钥生成器代码:

function generateRandomString($length = 5) {
    $characters = '123456789';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return '#'.$randomString;
$new_SN = generateRandomString(); }


如何检查$new_SN的值是否已存储在相关的SQL表单元格中-在我的情况下,该表是wp_postmeta,meta_key是串行的并且meta_value是该函数填充的值

最佳答案

为什么要生成一个唯一号码?有很多专门为此目的设计的工具-自从您提到MySQL以来,它支持自动递增整数,PHP支持uuid(uniqid())和一些哈希函数(如果您不想使用序号)。正如developerwjk所说-如果您的生成功能完全有效,那么在保存数据之前您不必费心检查-只需添加一个唯一索引,并在插入失败时捕获重复项即可。

09-25 18:30