php - 如何使用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
解决方案
尝试这个...
$id = 'MC00001';
list($idString, $idNumber) = sscanf($id,"%[A-Za-z]%[0-9]");
echo $idString.str_pad($idNumber + 1,6,'0',STR_PAD_LEFT);
推荐阅读
- python - 使用 bash 将 Python 添加到路径中
- oracle - Oracle 将游标的输出连接到 CLOB
- javascript - TypeError:无法读取离子应用程序 null 的属性“样式”
- node.js - 如何将 node.js 应用程序推送到具有本地依赖关系的 heroku?
- powershell - 从 PowerShell 中的文件名中提取日期
- python - 如何使PDF可填写?
- c++ - 为什么函数“constexpr”说明符应该匹配?
- java - 我怎样才能让这个数据管理器真正工作 Java Spigot Plugin
- jwt - 使用 JWT 创建的 Gmail 服务帐户访问令牌不起作用,返回
- python - 使用埃拉托色尼筛法的素数生成器