Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql PDO获取时的最大LONGBLOB数据长度_Php_Mysql_Pdo - Fatal编程技术网

Php Mysql PDO获取时的最大LONGBLOB数据长度

Php Mysql PDO获取时的最大LONGBLOB数据长度,php,mysql,pdo,Php,Mysql,Pdo,我在LONGBLOB类型的Mysql字段中插入了大约1.1MB的数据。这与LONGBLOB字段支持的最大长度相差甚远 插页似乎起作用了 如果在插入之前执行strlen($data),则返回1059245 如果在插入后执行查询: SELECT OCTET_LENGTH(`data`)... 它返回1059245 但如果我这样做了 $stmt = $pdo->prepare("SELECT `data` FROM `tbl_mytable` WHERE `id` = :id LIMIT 1"

我在LONGBLOB类型的Mysql字段中插入了大约1.1MB的数据。这与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

默认情况下是1MB的MYSQL\u ATTR\u MAX\u BUFFER\u大小

这解决了问题:

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

出于某种原因,我必须使用可选的第4个参数在构造函数中设置它-它不能直接使用上述代码。