|
|
1
24
它是一种症状
因此,在完成主要工作后,在函数末尾会出现错误。这与您观察到的执行insert语句相吻合。
两人的全部目的
进一步查看pqsetnonblocking(在postgesqls-fe-exec.c中)的源代码,有两个可能的原因导致调用失败:
因此,要么连接以某种方式丢失,要么pqflush没有成功完成,这表示连接输出缓冲区中的剩余内容。 第一种情况是无害的,因为您的脚本肯定会注意到稍后调用丢失的连接,并对此作出反应(或者失败更明显)。 这将留下第二种情况,这意味着您的连接处于非默认、非阻塞状态。我不知道这是否会影响以后重用此连接的调用。如果你想安全地使用它,在这种情况下,你需要关闭连接并使用一个新的/其他的连接。 |
|
2
3
听起来你在尝试使用
中给出的示例
docs
对于
你为什么要用
|
|
|
3
3
我最近也遇到了同样的问题,在HenrikOpels的帮助下,我的答案意识到在将连接设置回阻塞模式之前,PHP实际上不会等待缓冲区刷新。 “cannot set connection to blocking mode”可重复使用足够大的查询来填充发送缓冲区(在末尾填充空格就足够了)。对于较小的查询,我认为它依赖于负载,而且是间歇性的。 如果您确实需要异步模式,请尝试在 https://bugs.php.net/bug.php?id=65015 |
|
|
4
2
如果使用
螺纹
连接正在被重用。
如果是这种情况,你可以使用
这将强制新的数据库连接资源,但建议:
您可能会耗尽连接客户端
,所以小心地使用这个内螺纹,不要忘记使用
|
|
|
5
2
我在php 5.6.9中遇到了同样的错误消息 当持续连接由 PGYP-连接() 迷路了 pgsql.auto重置持久性 设置为 下车 . 在以下情况下,连接可能会丢失:
您可以检查php.ini pgsql.auto重置持久性 并将其设置为 论 . 用 pgsql.auto重置持久性 启用,每次 PGYP-连接() 正在调用,如果连接链接仍然有效,则检查连接链接。这需要一点开销,但在连接丢失时修复错误消息。 |
|
|
6
2
我也犯了那个错误。我通过重启Web服务器(Apache)来解决我的问题。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
|
Peter Schofield · 类型转换Postgresql 1 年前 |
|
|
Kevin Smeeks · Pyspark JDBC分区读取 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |