Максимальная длина данных LONGBLOB Mysql PDO при выборке

Я вставляю около 1.1 Мб данных в поле Mysql типа LONGBLOB. Это далеко от максимальной поддерживаемой длины поля 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 Configuration, что-то вроде max_fetch_length?

По умолчанию это MYSQL_ATTR_MAX_BUFFER_SIZE.

Это устранило проблему:

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