【发布时间】:2012-08-06 13:15:43
【问题描述】:
我需要生成一个字母数字字符串并与数据库值进行比较,但如果该值存在于数据库中,那么我们应该生成一个不同的数字字符串,并再次将其与数据库值进行比较......
<?php
$character_array = array_merge(range('a', 'z'), range(0, 9));
$Emp_Id = "";
for($i = 0; $i < 6; $i++) {
$Emp_Id .= $character_array[rand(0, (count($character_array) - 1))];} ?>
通过创建字母数字代码可以正常工作,但正如我上面提到的,我需要将它与数据库值进行比较。
$chkEmp_Id=mysql_fetch_array(mysql_query("SELECT Emp_Id FROM talent_users WHERE Emp_Id='{$Emp_Id}' "));
在与数据库值比较后,如果该值存在,那么它应该生成一个不同的“Emp_Id”,每次生成的员工 ID 都应该与数据库值进行比较...希望你们明白吗?请帮我解决这个问题...
【问题讨论】:
-
您应该停止使用
mysql_*函数。它们正在被弃用。请改用PDO(PHP 5.1 起支持)或mysqli(PHP 4.1 起支持)。如果您不确定使用哪一个,read this SO article。 -
shehzad 和 matt 你能不能给我一个可以解决这个问题的例子...?
-
为什么不让数据库为你生成一个独一无二的值呢?为什么它需要如此“随机”?这是一个非常低效的设计选择,因为随着表大小的增长,比较会变得越来越昂贵。
-
你好 Aaron,我们需要从 php 生成唯一值。这是我们项目的唯一选择。:)
标签: php mysql html sql sql-server