每次客户请求服务支持时,我都会为客户生成一个唯一标识符。
一旦生成id,id就被插入到数据库中
这里是我的代码:
function makeUnique() {
$start_time = uniqid(microtime(1));
$duration = sprintf('%0.24f', $start_time);
return date('dmYHis').$duration;
}
echo makeUnique();
此输出:071120112032291320715949.928639888763427734375000
出于某种原因,我得到 071120112032291320715949 作为号码。我做错了什么?
最佳答案
你需要去掉“.” (点)在你的函数中。您可能正在使用 INT,它会删除点后的数字。
return str_replace('.', '', date('dmYHis').$duration);
并确保字段足够大——比如 varchar(50)
我的建议是使用 md5 简单地散列客户端 id
md5($clientid)
并且您将 mysql 字段作为 char(32)
关于客户端的 php 唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045003/