gpt4 book ai didi

php - 如何使用 PDO 插入压缩数据?

转载 作者:行者123 更新时间:2023-11-29 00:11:54 25 4
gpt4 key购买 nike

我正在尝试使用 PDO 将一个大型序列化对象插入到 MySQL 数据库中。尝试直接插入给出:

PDOStatement::execute() [pdostatement.execute]: SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_packet_allowed' bytes

似乎有几种可能的方法来解决这个问题,但我的第一个策略是 gzcompress ,将其从 2383731 字节减少到 155955 字节(使用压缩级别 6)。但是现在由于不同的原因我正在努力插入结果:

PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lob) VALUES (' [一些二进制数据在这里吐出] '

这是代码的基本要点:

  $value = gzcompress(serialize($lob));
$stmt = $conn->prepare("INSERT INTO saved (lob) VALUES (:value)");
$stmt->bindParam(':value', $value, PDO::PARAM_LOB);
$stmt->execute();

documentation 中的示例所有人似乎都在使用文件流而不是存储在字符串中的二进制数据,所以我不确定这是否有效。谁能给点建议?

最佳答案

错误听起来像是您需要在字段名称周围添加反引号:

INSERT INTO saved (`lob`) VALUES (:value)

关于php - 如何使用 PDO 插入压缩数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24664562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com