我從我的服務器導入了一個MySQL錶轉儲到我的本地系統。我使用phpMyAdmin來查看我的本地MySQL數據庫。持有電子郵件的列顯示爲BLOB - 而不是實際的電子郵件。爲什麼導入的MySQL轉儲顯示某些列值爲BLOB?
當我按下「編輯」時,它顯示正確的電子郵件,但沒有列出。
我完全困惑,爲什麼會發生這種情況。任何人都可以提出解決方案
我從我的服務器導入了一個MySQL錶轉儲到我的本地系統。我使用phpMyAdmin來查看我的本地MySQL數據庫。持有電子郵件的列顯示爲BLOB - 而不是實際的電子郵件。爲什麼導入的MySQL轉儲顯示某些列值爲BLOB?
當我按下「編輯」時,它顯示正確的電子郵件,但沒有列出。
我完全困惑,爲什麼會發生這種情況。任何人都可以提出解決方案
它將blob的文本顯示爲一個佔位符,因爲blob數據類型(這是您的電子郵件存儲在其中的數據類型)的大小變化很大。對於大Blob大小,如果顯示數據,則可能需要100s +以上的屏幕才能顯示。
BLOB數據類型是爲了存儲任意的二進制數據(Binary Large OBject = BLOB),例如圖像或其他文檔。顯示現有值是沒有意義的。它看起來與在文本編輯器中查看圖像相同。
根據您使用的phpMyAdmin的版本,您有幾種選擇 - 我不知道這些選項。
這兩種可能性覆蓋了an already asked question。
但基本上,這只是對抗症狀,而不是治癒疾病。問題是:你爲什麼選擇電子郵件字段作爲BLOB?基本上,VARCHAR就足夠了。我不知道你正在運行的MySQL版本,但自從MySQL 5.0.3以來,VARCHAR可以是as large as 65k byte。
ALTER TABLE
`table`
CHANGE
`email` `email` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
上面的查詢將字段email
更改爲VARCHAR(255)。注意你喜歡使用的長度,以及字符集和整理。但在這種情況下,UTF-8應該很好。