我将大约1.1MB的数据插入到类型为LONGBLOB的Mysql字段中。这与长from字段的最大支持长度相差很远。
插入似乎有效。
如果在插入之前执行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?
发布于 2014-07-16 13:42:22
默认情况下是1MB的MYSQL_ATTR_MAX_BUFFER_SIZE。
这就解决了问题:
$pdo->setAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1024*1024*50); // 50 MB https://stackoverflow.com/questions/24781930
复制相似问题