我试图将一个很长的文本字符串插入MySQL Blob列,但MySQL只保存了64kB的数据。该字符串长度为75360个字符。我正在使用PHP的mysql_connect()
连接。
有什么想法吗?
如果它是Blob或Text,它会有所不同吗?我最初把它作为文本但是没有任何影响地改变它。
答案 0 :(得分:30)
因为那是BLOB列的maximum size。您需要使用MEDIUMBLOB / LONGBLOB或MEDIUMTEXT / LONGTEXT。
答案 1 :(得分:6)
MySQL中的BLOB
类型最多可存储65,534个字节,如果您尝试存储的数据超过这么多数据,MySQL将截断数据。 MEDIUMBLOB
最多可存储16,777,213个字节,LONGBLOB
最多可存储4,294,967,292个字节。
如果启用严格SQL模式(MySQL modes),则在尝试存储不适合列类型的数据时会出现错误。
答案 2 :(得分:2)
您还询问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
答案 3 :(得分:0)
blob列每the documentation
只有64Kb尝试使用中型柱类型...