如何检查字符串是否已在SQL数据库中


How to check if a string is already in SQL db

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

这是密钥生成器代码:

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())和几个哈希函数(如果你不想使用序列号)。正如developerjk所说,如果你的生成函数是有效的,那么你不应该在保存数据之前进行检查,只需添加一个唯一的索引,并在重复项无法插入时捕获它们。