我正在创建一个小插件,为每个帖子提供一个序列号,每个序列号必须唯一,我不知道如何检查生成的序列号是否已经在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所说-如果您的生成功能完全有效,那么在保存数据之前您不必费心检查-只需添加一个唯一索引,并在插入失败时捕获重复项即可。