Mysql PDO最大LONGBLOB数据长度


Mysql PDO maximum LONGBLOB data length on fetch

我将大约1.1 Mb的数据插入到LONGBLOB类型的Mysql字段中。这与LONGBLOB字段所支持的最大长度相距甚远。

插入似乎有效。

如果我在插入之前做一个strlen($data),它返回1059245。

如果我在插入

后执行查询
SELECT OCTET_LENGTH(`data`)...

返回1059245

但是如果我做了

$stmt = $pdo->prepare("SELECT `data` FROM `tbl_mytable` WHERE `id` = :id LIMIT 1");
$stmt->bindValue(":id", $id, PDO::PARAM_INT);
$stmt->execute();
$data = $stmt->fetch(PDO::FETCH_ASSOC);
echo strlen($data['data']);

返回1048576

我的数据似乎在1048576字节后被切割。

为什么我只收到我的数据的第一个1048576字节时,做查询?

它是一个PDO配置,像max_fetch_length?

MYSQL_ATTR_MAX_BUFFER_SIZE默认为1MB

修复了

    $pdo->setAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1024*1024*50);  // 50 MB