PHP和MySQL中的Guid/Uuid

PHP和MySQL中的Guid/Uuid,php,mysql,Php,Mysql,我希望将UUID以二进制(16)的形式存储在数据库中,但我需要接受它们,并将它们表示为XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX格式。在我开始在PHP代码中拆分guid之前(这是多么有趣!),有没有现成的库或函数可以做到这一点?你不是指二进制(36)而不是二进制(16)吗 试一试 CakePHP为UUID提供了一些简洁的功能,据我所知,它可以自动为CHAR(36)和BINARY(36)工作。无论哪种方式,您都可以深入了解源代码,看看它是否满足您的需要 编辑:这里有一

我希望将UUID以二进制(16)的形式存储在数据库中,但我需要接受它们,并将它们表示为XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX格式。在我开始在PHP代码中拆分guid之前(这是多么有趣!),有没有现成的库或函数可以做到这一点?

你不是指二进制(36)而不是二进制(16)吗

试一试

CakePHP为UUID提供了一些简洁的功能,据我所知,它可以自动为CHAR(36)和BINARY(36)工作。无论哪种方式,您都可以深入了解源代码,看看它是否满足您的需要


编辑:这里有一个独立的类,它可以生成并转换为您可能需要的任何格式:我在下面的评论中发布了此内容,但希望确保其他用户可以轻松看到该链接。

您可以先用
然后使用执行十六进制(str)的逆运算。也就是说,它将参数中的每对十六进制数字解释为一个数字,并将其转换为该数字表示的字符。

否,我指的是二进制(16)。我想存储基础值,而不是扩展的字符表示。好的,我明白了。PECL库应该可以为您实现这一点,但这可能更好:它不仅可以生成UUID,还可以转换为不同的格式,包括二进制(16)+1。可能有一个库,但这只是转换它们的一个简短任务。除非您正在生成它们,否则我只会花费额外的几行代码来编写您自己的函数。