我想具體的文本字段存儲在HTML相當於form.I數據庫使用了PHP函數問題存儲HTML文本數據庫字段
$str = htmlentities($str, ENT_QUOTES, "UTF-8");
其中數據庫特定列有關$str
變量Column Charset: utf8
& Column Collate: utf8_bin
。但值存儲在相同的BLOB表單中。
我想具體的文本字段存儲在HTML相當於form.I數據庫使用了PHP函數問題存儲HTML文本數據庫字段
$str = htmlentities($str, ENT_QUOTES, "UTF-8");
其中數據庫特定列有關$str
變量Column Charset: utf8
& Column Collate: utf8_bin
。但值存儲在相同的BLOB表單中。
BLOB
根據MySQL是一種數據類型,它與您的字符編碼(utf8)或排序規則不同。如果你想改變的數據類型,你將與查詢數據庫...
ALTER TABLE tbl_name MODIFY col_name TEXT;
或VARCHAR()
或任何你想改變它。
如果您想要數據庫中的文本,請勿使用BLOB
字段類型。使用TEXT
,VARCHAR
等。BLOB
用於二進制數據,而您在PHP中做的任何事情都不會改變它存儲在數據庫中的方式。
BLOB很可能被用於文本數據爲好,但沒有字符集轉換將被應用。 – 2011-05-04 14:59:18
如果你存儲大量的HTML頁面,使用LARGETEXT()
,但會自動創建「BLOB」。我使用'Column Charset:utf8&Column Collate:utf8_bin'爲特定的列創建了'text type',但是顯示或瀏覽它時顯示爲'[BLOB - 6 B]'。 – Aditii 2011-05-04 15:05:56
這是因爲你的'Column Charset:utf8'和'Column Collate:utf8_bin'賦值對於你正在做的事情是不正確的。當你創建一個新的表列時,你需要用'ALTER TABLE tbl_name ADD col_name TEXT'查詢,你的數據類型將是'TEXT'。列字符集和歸類將自動分配給表的默認值。 – 65Fbef05 2011-05-04 15:17:13