2014-10-09 75 views
0

我有一个表,我MySQL数据库,其中IM使用UUID作为主键(二进制(36))当我插入插入UUID在MySQL从PHP

03aeecd8-d58f-4601-9c52-4fe85cb992e1 

出现在数据库

30336165656364382d643538662d343630312d396335322d346665383563623939326531 

可能是什么问题

这个问题开始发生时,我建立我自己的数据库服务器,当我使用托管服务提供商的托管分贝那里显示正常

+0

请显示带插入数据的var_dump的插入代码。 – sectus 2014-10-09 06:23:09

+0

当我检索数据使用'SELECT'或显示使用'var_dump'它看起来很好像'03aeecd8-d58f-4601-9c52-4fe85cb992e1' – dakait 2014-10-09 06:25:26

回答

2

我认为你正在观看的值与phpMyAdmin显示与HEX功能打包的默认二进制字段。

+0

+1这应该是公认的答案。我刚刚测试过,实际上当我将UUID插入到BINARY列时,我发现它在phpMyAdmin中显示为十六进制值的字符串,即使它们通常存储在数据库中。 – 2014-10-09 15:31:39

+0

当我从'SomeTable'选择UNHEX(id)时,它显示为null(ust要求知道) – dakait 2014-10-10 09:20:33

+0

在结果列表中,您可以看到'+ Options'单击它。将会有一个提到HEX的复选框。 – sectus 2014-10-10 13:16:34

4

长字符串是HEX('03aeecd8-d58f-4601-9c52-4fe85cb992e1')的结果。

不知何故正在查看每个字符的ASCII码十六进制: '0'= 30, '3'= 33, 'A'= 61,等

+0

所以我不应该担心它? – dakait 2014-10-09 06:39:18

+0

对,你的数据是正常存储的。请参阅@sectus的答案。 – 2014-10-09 15:32:28

+1

我得到了一个downvote。我承认这不是公认的答案,但这是一条重要线索。 Downvoter,你可以请你选择downvote吗? – 2014-10-10 07:00:40