【问题标题】:pg_connect does not return false on failurepg_connect 在失败时不返回 false
【发布时间】:2016-01-27 22:26:34
【问题描述】:

我正在尝试使用 php 中的 pg_connect 连接到 postgres 数据库。如果我提供了错误的测试凭据,它不会返回 false。

而是返回低于错误

说明:

pg_connect():无法连接到 PostgreSQL 服务器:无法连接到服务器:连接被拒绝

【问题讨论】:

标签: php postgresql


【解决方案1】:

正如有人在评论中所说,您应该在这里查看:how to catch pg_connect() function error?

您可以使用 @ 隐藏错误并执行以下操作:

<?php
$db = @pg_connect("...") or die("failed");
if( $db == "failed"){
  // false
}
else {
  // true
}
?>

【讨论】:

    【解决方案2】:

    我认为这里的问题是您正在尝试打印结果,但打印 false 值不会打印任何内容,因此您只是看到 pg_connect 生成的警告。

    print(false); //prints nothing
    

    如果要查看变量的实际值,请改用 var_dump():

    $result = pg_connect(...);
    var_dump($result);
    

    【讨论】:

      【解决方案3】:

      试试这个可能会有帮助

      <?php
      function getdb() {
          $db = pg_connect("...") or die('connection failed');
          return $db;
      }
      ?>
      

      【讨论】:

      • 尝试使用上述功能,但仍然出现错误。
      • 我得到同样的错误 pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection denied
      • 可能版本不同。按照以下链接检查您的版本postgresql.org/docs/8.3/static/libpq-connect.html
      猜你喜欢
      • 2016-03-06
      • 2011-11-05
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2014-04-07
      • 2017-01-14
      • 2020-08-27
      • 1970-01-01
      相关资源
      最近更新 更多