0

我想填充具有下一个结构的表:

USERS_TABLE
ID_USR (Primary_Key, AUTO_INCREMENT)
USERNAME (Not Null)
EMAIL (Not Null, Unique Key)
Password(Not Null)
Nacionality (Not Null)
Work (Null)

我想用一个php脚本来做。创建脚本对我来说不是问题,但我对电子邮件的字段有一些疑问。我不想要真实姓名或电子邮件,只想要数据和引入超过 10-100 行的可能性。

因此,对于 ID_USR,我没有问题,因为它是一个自动增量值,非空字段或空字段没有问题。

现在想想电子邮件,你看到它是一个唯一的键,所以我想放两个随机数值​​,一个在@之前,一个在@之后,然后是扩展名。

例子:

<?php 
for ($i = 0; $i < 10; $i++)
{
$a = rand();
$b = rand(); // array("gmail", "facebook", "hotmail", "outlook", "yahoo".....);
$extension = array(".com", ".es", ".net", ".org"); // ....
$c = rand(0,3);
$email = $a."@".$b."".$extension[$c];
echo "$email";
}
?>

它返回给我:

2095518299@699790428.com 
254450939@1623171070.org 
1142680888@2074501004.org 
1940419404@1779299580.es 
726585010@1262850036.net 
578544275@145818927.net 
2067281904@1894405902.org 
275443932@1915863743.es 
734209458@1269004984.com 
1035465063@1828742272.net 

如您所见,这可以工作,但我的问题是是否有更智能/有效的方法。

我认为这可能是建设性的,所以我希望你的回答。再见。

4

1 回答 1

2

啊哈,测试数据问题!

如果我是你,我会使用你控制的域名作为电子邮件地址的域部分。那是,

  726585010@emailtest.yoyodyne.com 
  578544275@emailtest.yoyodyne.com 
  2067281904@emailtest.yoyodyne.com

(如果您碰巧为 Yoyodyne 工作。)如果您出错并尝试发送给所有人,这将防止随机生成的电子邮件地址逃逸。

然后,使用更长的随机数作为数字,这样您就不会遇到很多意外碰撞。你可能会得到一些。

最后,在填充表格之后,在使用它之前,返回并更改电子邮件列,使其包含 ID 号。

 UPDATE USERS_TABLE SET EMAIL = CONCAT(ID_USR,'@emailtest.yoyodyne.com')

这样,您的测试将很容易追溯到特定的用户行。

于 2012-10-13T11:31:08.877 回答