我正在创建一个小插件,给每个帖子一个序列号,每个序列号必须是唯一的,我不知道如何检查生成的序列号是否已经在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是由函数填充的值。
发布于 2015-02-11 06:25:42
为什么要生成一个唯一的数字?有很多专门为此目的设计的工具--因为你已经提到了MySQL,它支持自动递增整数,PHP支持uuid (uniqid())和几个散列函数(如果你不想使用序列号的话)。正如developerwjk所说-如果您的生成函数是有效的,那么您就不应该在保存数据之前进行检查-只需添加一个唯一的索引,并在重复项无法插入时捕获它们。
https://stackoverflow.com/questions/28442590
复制相似问题