首页 > 解决方案 > 如何使用php在数据库中生成唯一ID(MC0001)并且它不会在数据库中重复

问题描述

我尝试过编写代码,但我得到的输出在数据库 MC00001 中一次又一次地是相同的 id。

$value2='';
    //Query to fetch last inserted invoice number
    $query1 = "SELECT uniqueuserid from registration order by uniqueuserid DESC LIMIT 1";
    $stmt = $con->query($query1);
    if(mysqli_num_rows($stmt) > 0) {
        if ($row = mysqli_fetch_assoc($stmt)) {
            $value2 = $row['uniqueuserid'];
            $value2 = substr($value2, 10, 13);//separating numeric part
            $value2 = $value2 + 1;//Incrementing numeric part
            $value2 = "MC" . sprintf('%03s', $value2);//concatenating incremented value
            $value = $value2; 
        }
    } 
    else {
        $value2 = "MC00001";
        $value = $value2;
    }

实际:MC00001,MC00001,MC00001,

预期:MC00001,MC00002,MC000003

标签: phpmysql

解决方案


尝试这个...

$id = 'MC00001';
list($idString, $idNumber) = sscanf($id,"%[A-Za-z]%[0-9]");
echo $idString.str_pad($idNumber + 1,6,'0',STR_PAD_LEFT);

推荐阅读