D T*_*D T 1 php postgresql pdo
这是我的设定:
$DBH = new PDO(
"pgsql:host=$host;dbname=$dbname",
$username,
$password,
array(
PDO::ATTR_TIMEOUT => 60,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
Run Code Online (Sandbox Code Playgroud)
这是20多岁后的时间.但如果我设定 PDO::ATTR_TIMEOUT => 5,它会在5秒后超时.
为什么不能增加连接超时?我使用xampp 3.2.2,数据库Postgresql 9.2我在本地测试,不存在反病毒.
PDO::ATTR_TIMEOUT并且default_socket_timeoutINI设置是您可以从PHP更改的唯一值,但TCP连接可能会受到许多因素的影响.
在客户端,防火墙或操作系统本身也可能应用超时限制.
在传输过程中,任何中间对等体(您的路由器,ISP)也可以根据各种规则丢弃连接.
但最重要的(即更可能在你的情况下),连接涉及两方和PostgreSQL服务器也有自己的超时设置- ,,tcp_keepalives_idle 和.tcp_keepalives_intervaltcp_keepalives_countauthentication_timeout
参考:https://www.postgresql.org/docs/current/static/runtime-config-connection.html
究竟是什么影响你是不可能猜到的,你可能需要改变多个设置.检查上面的每一个,你可以.