我试图在 MySQL Blob 列中插入一个很长的文本字符串,但 MySQL 只保存了 64kB 的数据。该字符串的长度为 75360 个字符。我正在连接 PHP 的mysql_connect()
.
有任何想法吗?
如果它是 Blob 或 Text,它会有所不同吗?我最初将它作为文本,但更改它没有任何影响。
因为这是 BLOB 列的最大大小。您需要使用 MEDIUMBLOB/LONGBLOB 或 MEDIUMTEXT/LONGTEXT。
MySQL 中的一个BLOB
类型最多可以存储 65,534 个字节,如果您尝试存储超过这个数据量,MySQL 将截断数据。 MEDIUMBLOB
最多可存储 16,777,213 字节,LONGBLOB
最多可存储 4,294,967,292 字节。
如果启用严格的 SQL 模式(MySQL 模式),当您尝试存储不适合列类型的数据时,您将收到错误消息。
您还询问了 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
根据文档,blob 列只有 64Kb
请尝试使用 mediumblob 列类型...