我有一個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