我有一个 php 脚本,用于在 postgresql 数据库中存储一些信息。在此脚本中,我使用一个函数来存储有关某些数据库操作的一些日志。在测试过程中,我发现我的脚本只会在 4-5 秒后记录与 pg_connect 函数相关的错误 - 这对我来说是一个大问题。
您可以在下面找到我的测试和结果:
情况 1 - pg_connect 函数中没有错误:
Log("START DBCONN - without errors");
$dbconn = pg_connect("host=$host dbname=$dbname user=$dbuser password=$dbpassword");
if(!$dbconn){
Log("ERROR: Could not connect to database");
}
Log("END");
情况 2 - pg_connect 中出现错误:
Log("START DBCONN - with errors");
$dbconn = pg_connect("host=$host12 dbname=$dbname user=$dbuser password=$dbpassword");
if(!$dbconn){
Log("ERROR: Could not connect to database");
}
Log("END");
结果
情况 1:
[12-Jan-2016 09:31:21] START DBCONN - without errors
[12-Jan-2016 09:31:21] END
情况 2:
[12-Jan-2016 09:31:59] START DBCONN - with errors
[12-Jan-2016 09:32:03] ERROR: Could not connect to database
[12-Jan-2016 09:32:03] END
你知道这个问题的解决方案吗?因为,我还没有找到一个:(
感谢您的帮助!
最佳答案
根据错误的性质,可能有不同的原因:
- 如果用户名或密码错误,服务器可能会延迟否定响应,从而使暴力破解有效组合变得更加麻烦。
- 如果主机无法访问,tcp 连接超时可能会是几秒钟。
这两个问题都很难以干净的方式解决。
还有一些不应导致延迟的错误情况,例如:
- 如果主机可访问,但数据库服务器未运行(即“连接被拒绝”)。
关于php - 如果出现错误,pg_connect 会非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741715/