0
$new_acct_id = 'ACC'.strtoupper( substr(md5(uniqid(rand())),0,5) );


mysql_query("INSERT INTO `accounts` (id, market_unit_id, account_type_id, is_inactive,inactive_notes,is_special,dealer_id, is_premium)
VALUES ('".$new_acct_id."', '".$mu_id."', '".$atype['0']."', '".$is_inactive."','','','', '".$is_premium."')") or die("load2 -" . mysql_error());

load2 - 键 'PRIMARY' 的重复条目 'ACC96E38'

如果第一个产生错误,我可以让它生成另一个数字吗?

4

1 回答 1

1

这应该这样做。

do{
    $error='';
    $new_acct_id = 'ACC'.strtoupper( substr(md5(uniqid(rand())),0,5) );
    $res=mysql_query("INSERT INTO `accounts` (id, market_unit_id, account_type_id, is_inactive,inactive_notes,is_special,dealer_id, is_premium)
    VALUES ('".$new_acct_id."', '".$mu_id."', '".$atype['0']."', '".$is_inactive."','','','', '".$is_premium."')");
    if(!$res)$error=mysql_error();
}while(!$res && strpos($error,'Duplicate entry')!==false);
if(!$res)die($error);
于 2012-06-04T16:29:44.033 回答