繁体   English   中英

用PHP编码和解码二进制GUID

[英]encoding and decoding a binary guid in PHP

我有一个使用ADO.NET MySQL驱动程序(连接器/ NET)的C#.NET 3.5应用程序。 它将Guid.NewGuid()作为BINARY(16)存储在MySQL数据库中。

我有另一个使用PHP 5.3.4的应用程序,该应用程序需要能够将该二进制值读取为GUID字符串,并以相同的16字节二进制值编码GUID字符串。

举例来说,我希望能够在这两件事之间进行转换:

GUID string: E241346C-504F-4BE5-BDF3-1B8274815597
BINARY(16): 65 32 34 31 33 34 36 63 2d 35 30 34 66 2d 34 62

如何在PHP中做到这一点?

问题在于该字段是BINARY(16),但是My SQL连接器试图在其中存储CHAR(36)。 (它们改变了v6.1.1中GUID格式化的方式)。因此,我的GUID的最后20个字节被无声地截断了。 (我不知道为什么连接器没有引发异常。)

一旦更改数据库以将GUID存储为CHAR(36),它就可以正常工作。 或者,我可以在连接字符串中使用oldguids=true元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM