客户端的 php 唯一标识符

标签 php mysql uniqueidentifier

每次客户请求服务支持时,我都会为客户生成一个唯一标识符。

一旦生成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/

相关文章:

php - 昨天和今天在mysql中的日期

用于两个相同数据库的 Python + MySQLDB 批量插入/更新命令

php - 每月或每年的个人假期总天数

javascript - 页面重定向(PHP,HTML)

mysql - 内存消耗和正确的数据库设计

lucene - 如何设置一个字段以使行在Lucene中保持唯一?

c# - 如何将字符串转换为唯一标识符?

guid - UUID 有多独特?

java - 在httpget上将mysql参数从java发送到php

php - 是否可以在 $post->post_content 中获取帖子内容的 Elementor 样式?