我正在创建一个小插件,它为每个帖子提供一个序列号,每个序列号必须是唯一的,我不知道如何检查生成的序列号是否已经在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为serial,meta_value是,函数填充的值
答案 0 :(得分:0)
为什么要生成唯一的号码?有很多专门为此目的而设计的工具 - 因为你已经提到了MySQL,它支持自动增量整数,PHP支持uuid(uniqid())和几个散列函数(如果你不想使用序列号)。正如developerwjk所说 - 如果您的生成函数完全有效,那么在保存数据之前不应该费心检查 - 只需添加一个唯一索引并在它们无法插入时捕获重复项。