我試圖插入一個非常長的文本字符串到MySQL Blob列,但MySQL只保存64kB的數據。該字符串長75360個字符。我正在連接PHP的mysql_connect()
。爲什麼只有64kB的數據被保存在我的MySQL數據列中?
任何想法?
如果它是Blob或文本,它會有所作爲嗎?我最初把它當作文本,但是沒有任何影響地改變它。
我試圖插入一個非常長的文本字符串到MySQL Blob列,但MySQL只保存64kB的數據。該字符串長75360個字符。我正在連接PHP的mysql_connect()
。爲什麼只有64kB的數據被保存在我的MySQL數據列中?
任何想法?
如果它是Blob或文本,它會有所作爲嗎?我最初把它當作文本,但是沒有任何影響地改變它。
因爲這是BLOB列的maximum size。您需要使用MEDIUMBLOB/LONGBLOB或MEDIUMTEXT/LONGTEXT。
BLOB列是每the documentation
僅64Kb的嘗試MEDIUMBLOB列類型,而不是...
一個BLOB
類型在MySQL中可存儲多達65,534個字節,如果你嘗試存儲比這多得多數據MySQL將截斷數據。 MEDIUMBLOB
最多可存儲16,777,213個字節,而LONGBLOB
最多可存儲4,294,967,292個字節。
如果啓用嚴格SQL模式(MySQL modes),則當您嘗試存儲不適合列類型的數據時,將會出現錯誤。
您還問過BLOB和TEXT之間是否有差別
BLOBS是用於二進制數據的。如果您在BLOB字段上執行LIKE查詢,它將區分大小寫。
即
SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT
SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
好奇,爲什麼這引起了一個匿名downvote? – 2015-07-22 09:16:14