12

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

有任何想法吗?

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

4

4 回答 4

30

因为这是 BLOB 列的最大大小。您需要使用 MEDIUMBLOB/LONGBLOB 或 MEDIUMTEXT/LONGTEXT。

于 2009-01-03T20:31:13.450 回答
6

MySQL 中的一个BLOB类型最多可以存储 65,534 个字节,如果您尝试存储超过这个数据量,MySQL 将截断数据。 MEDIUMBLOB最多可存储 16,777,213 字节,LONGBLOB最多可存储 4,294,967,292 字节。

如果启用严格的 SQL 模式(MySQL 模式),当您尝试存储不适合列类型的数据时,您将收到错误消息。

于 2009-01-03T20:36:29.353 回答
2


您还询问了 BLOB 和 TEXT BLOBS 用于二进制数据是否有区别。如果您对 BLOB 字段执行 LIKE 查询,它将区分大小写。

IE

SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT

SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
于 2009-01-03T23:39:44.740 回答
0

根据文档,blob 列只有 64Kb

请尝试使用 mediumblob 列类型...

于 2009-01-03T20:33:20.717 回答