2

我在这个问题上挣扎了几个小时。

我有一长串。该值为 base64_encoded json 数据。当我在做 var_dump 或将字符串保存到 MySQL 时,它会被切断。但它正确保存到文件中。

这是保存到文件的输出。(正确) http://pastebin.com/Brr9a271

这是保存到 MySQL blob 字段的数据。(切)。当我做 var_dump http://pastebin.com/u1xNAnUb时也会出现同样的情况

我错过了什么?这可能是一个 PHP 错误吗?

4

3 回答 3

3

您的文件大约有 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
于 2013-05-14T12:51:10.937 回答
0

您使用的 char(或 var char)根据长度判断(大小:64.00 KB)

http://dev.mysql.com/doc/refman/5.0/en/char.html

尝试使用文本或 blob

http://dev.mysql.com/doc/refman/5.0/en/blob.html

于 2013-05-14T12:29:35.457 回答
0

要存储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)
于 2014-02-18T04:04:40.770 回答