首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中从SQL语句创建唯一的文件名

在PHP中从SQL语句创建唯一的文件名
EN

Stack Overflow用户
提问于 2011-04-08 16:19:48
回答 6查看 541关注 0票数 2

我想要将长SQL命令转换为唯一的文件名,以便进行缓存练习。我目前使用的是每个SQL命令的md5(),但不确定它们是否是唯一的。

md5($sql)会导致每个SQL语句的文件名是唯一的吗?

对于同一个md5语句,这些SQL字符串是否总是相同的?它们必须是为我准备的。

非常感谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-08 16:22:41

对于唯一的输入字符串,md5将是唯一的(除非在极少发生冲突的情况下)-所以您正在做正确的事情。SHA1将会更好。

票数 3
EN

Stack Overflow用户

发布于 2011-04-08 16:23:54

它将是相当独特的,永远不会成为问题。这就是MD5的全部意义所在,为唯一的输入创建唯一的散列。尽管MD5并不完美,但意外发现冲突的可能性很低,以至于在所有实际意图和目的上都是不存在的。而且由于MD5非常快,所以它是一个很好的选择。

票数 3
EN

Stack Overflow用户

发布于 2011-04-08 16:24:04

好吧,这一切都取决于声明是什么。如果你曾经有过相同的两个语句,那么它们就不是唯一的。

但是,您可以将当前日期或时间附加到字符串中,例如:

代码语言:javascript
运行
复制
$newsql = $sql.date('Y-m-d H:m:s');
md5($newsql);

您还可以使用strtotime()函数来生成一个仅数字的时间戳。

或者,您可以在SQL中附加NOW() MySQL命令,假设您返回的是数据,那么它将是唯一的,最后有一个时间。

不确定为什么要从语句生成文件?

编辑

我很抱歉,发帖者希望它们是独一无二的,上面的内容将确保它们不是独一无二的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5592371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档