1. 程式人生 > >tp5生成6位不重複驗證碼

tp5生成6位不重複驗證碼

/**
     * 獲取啟用碼
     */
    public function getnum()
    {
        $num = microtime(true);
        for ($i = $num; $i < ($num + 10); $i++) {
//            dump(substr(md5($i), 0, 6));exit;
            Db::name("fangchan_jihuoma")->insert([
                'num' => substr(md5($i), 0, 6),
                'status' => '',
                'created_time' => time
(), 'info_time' => $i ]); } $sql = "select count(*) as sum,num from osc_fangchan_jihuoma group by num HAVING sum>1";//查詢重複的驗證碼數量和重複的驗證碼 $data = Db::query($sql); if(!empty($data)) { foreach($data as $k=> $v) {
for($j=0;$j<$v['sum'];$j++){ Db::name("fangchan_jihuoma")->where('num',1)->delete();刪除重複的驗證碼 } } } $this->success('啟用碼已生成!'); }
CREATE TABLE `osc_fangchan_jihuoma` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增長id
', `num` varchar(8) NOT NULL COMMENT '啟用碼', `uid` int(10) unsigned zerofill DEFAULT NULL COMMENT 'member表id', `status` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0' COMMENT '是否核銷 0:未核銷,1:已核銷', `created_time` int(11) NOT NULL DEFAULT '0' COMMENT '啟用碼建立時間', `info_time` int(11) NOT NULL DEFAULT '0' COMMENT '標記用時間', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=134 DEFAULT CHARSET=utf8mb4;