我有一个mysql表,它将存储用户的电子邮件地址(每个都是唯一的,是主场)和时间戳。
我已经添加了另一列名为'unique_code' (varchar(64), utf8_unicode_ci)
。基于mysql表中唯一邮件地址的唯一代码?
我非常感谢帮助,
a)产生一个5位的字母数字代码,即:5ABH6
b)检查所有行的“UNIQUE_CODE”列,以确保它是唯一的,否则重新生成,并再次检查
c)中插入的唯一生成的5输入'unique_code'
列,对应于刚刚输入的电子邮件地址。 d)在屏幕上显示代码。
我必须放置什么样的代码?
我当前的PHP如下:
require "includes/connect.php";
$msg = '';
if($_POST['email']){
// Requested with AJAX:
$ajax = ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest');
try{
if(!filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)){
throw new Exception('Invalid Email!');
}
$mysqli->query("INSERT INTO coming_soon_emails
SET email='".$mysqli->real_escape_string($_POST['email'])."'");
if($mysqli->affected_rows != 1){
throw new Exception('You are already on the notification list.');
}
if($ajax){
die('{"status":1}');
}
$msg = "Thank you!";
}
catch (Exception $e){
if($ajax){
die(json_encode(array('error'=>$e->getMessage())));
}
$msg = $e->getMessage();
}
}
5位字母数字代码意味着系统可以包含的唯一代码数量为60,466,176个唯一代码。 – mauris 2011-03-15 04:53:19
5字符代码的目的是什么?如果它是电子邮件地址的函数,那么如何在不使用不同算法的情况下生成第二个代码?如果不是,为什么简单的自动增量序列号不起作用? – 2011-03-15 04:54:27
为什么你需要一个唯一的代码? – Jacob 2011-03-15 04:55:05