2014-10-09 100 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