我在这个问题上挣扎了几个小时。
我有一长串。该值为 base64_encoded json 数据。当我在做 var_dump 或将字符串保存到 MySQL 时,它会被切断。但它正确保存到文件中。
这是保存到文件的输出。(正确) http://pastebin.com/Brr9a271
这是保存到 MySQL blob 字段的数据。(切)。当我做 var_dump http://pastebin.com/u1xNAnUb时也会出现同样的情况
我错过了什么?这可能是一个 PHP 错误吗?
我在这个问题上挣扎了几个小时。
我有一长串。该值为 base64_encoded json 数据。当我在做 var_dump 或将字符串保存到 MySQL 时,它会被切断。但它正确保存到文件中。
这是保存到文件的输出。(正确) http://pastebin.com/Brr9a271
这是保存到 MySQL blob 字段的数据。(切)。当我做 var_dump http://pastebin.com/u1xNAnUb时也会出现同样的情况
我错过了什么?这可能是一个 PHP 错误吗?
您的文件大约有 86KiB,但 BLOB 列的最大长度为 65,535。
使用MEDIUMBLOB。
从文档中:
类型 | 最大长度 -----------+------------------------- 小斑点 | 255 (2 8 -1) 个字节 斑点 | 65,535 (2 16 -1) 字节 = 64 KiB 中号 | 16,777,215 (2 24 -1) 字节 = 16 MiB LONGBLOB | 4,294,967,295 (2 32 -1) 字节 = 4 GiB
您使用的 char(或 var char)根据长度判断(大小:64.00 KB)
http://dev.mysql.com/doc/refman/5.0/en/char.html
尝试使用文本或 blob
要存储base64 编码的数据,请将MYSQL表中的数据类型更改为LONGTEXT。
看一看 !!!
TINYTEXT - 255 bytes
TEXT - 65535 bytes
MEDIUMTEXT - 16,777,215 bytes (2^24 - 1)
LONGTEXT - 4G bytes (2^32 – 1)
TINYBLOB - 255 bytes
BLOB - 65535 bytes
MEDIUMBLOB - 16,777,215 bytes (2^24 - 1)
LONGBLOB - 4G bytes (2^32 – 1)