我试图插入一个非常长的文本字符串到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