【发布时间】:2012-02-23 05:21:54
【问题描述】:
我正在使用函数来使用表中的最后一个 ID 创建唯一 ID。但是问题来的时候 人大约在同一时间打开。您能否建议对当前功能进行任何纠正?由于此功能用于生产和实时服务器,因此对代码稍作调整会好得多。
这里是函数使用:
function approvalNumber()
{
$data=array();
$text = "APN/";
$position = "front";
$this->db->order_by('approval_id','desc');
$this->db->limit('1','0');
$query=$this->db->get('approval_note');
if($query->num_rows()>0)
{
foreach($query->result_array() as $row){
$data[] = $row;
}
}
$query->free_result();
if(count($data))
$id=str_pad((int) $data['0']['approval_id']+1,4,"0",STR_PAD_LEFT);
else
$id='0001';
return $approvalNo = $text.$id;
}
这将生成:APN/0371
【问题讨论】:
-
不要这样做。只需使用普通的 auto_increment 主键字段作为 id。用零填充输出它是一个显示问题,不应考虑如何生成 id。
标签: php mysql codeigniter