为什么我的MySQL数据列中只保存了64kB的数据?

时间:2009-01-03 20:28:37

标签: php mysql text blob

我试图将一个很长的文本字符串插入MySQL Blob列,但MySQL只保存了64kB的数据。该字符串长度为75360个字符。我正在使用PHP的mysql_connect()连接。

有什么想法吗?

如果它是Blob或Text,它会有所不同吗?我最初把它作为文本但是没有任何影响地改变它。

4 个答案:

答案 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

尝试使用中型柱类型...