如何检查一个字符串是否已经在SQL数据库中
问题描述:
我正在创建一个小插件,它为每个帖子提供了一个序列号,每个序列号必须是唯一的,我不知道如何检查生成的序列号已经在SQL数据库中。如何检查一个字符串是否已经在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())和几个哈希函数(如果你不想使用连续数字)。正如developerwjk所说 - 如果您的生成函数完全有效,那么在保存数据之前,您不应该打扰检查 - 只需添加唯一索引并在插入失败时重置陷阱。
在表上设置一个“唯一”约束,并在插入时查找主键违规错误。 – developerwjk 2015-02-10 22:00:54
只需使用自动增量http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html – sqluser 2015-02-11 00:02:13