0

我在下面使用这个。它会防止身份证重复吗?

代码:

$new_generating_id= 在流程页面上,每次处理流程页面时都会生成一个新的 ID;

  $sql = "select `Message_id` from `queries_sent` 
  where message_id='$new_generating_id'";
  $query = mysql_query($sql) or die ("Error: ".mysql_error());

  while ($row = mysql_fetch_array($query)){

$storedid = $row['Message_id'];


  }
  mysql_free_result($query);

  if ( $new_generating_id == $storedid ) {
echo("An error occured.");
    die('');
   } else {
echo('');
   }

为了玩弄它以查看它是否有效,我使用已知变量对其进行了测试。

我更改$new_generating_id为存在的 id,当 db 拉出它时,它给出了错误消息。你们有什么感想?

4

2 回答 2

1

尝试使用时间戳值进行识别。它对于提交的每笔交易都是唯一的。最简单的形式是:

$id='myid'.time();

在这里,我使用了字符串myid并将其与时间戳值(来自time()函数)连接起来。现在将此值存储在数据库中并对其执行操作。

于 2011-11-28T18:11:54.927 回答
0

如果你想在 Message_id 字段中插入一些唯一的字符串,首先将 Message_id 标记为在表中是唯一的。然后你可以使用类似这样的代码将新的 id 插入到该表中:

do {
    $uniqueId = md5(uniqid(mt_rand(), true));
    mysql_query("INSERT INTO queries_sent (Message_id) VALUES ('$uniqueId')");
} while (mysql_errno() == 1062);
于 2011-11-28T18:24:43.093 回答