Php pg_connect在发生故障时不返回false

Php pg_connect在发生故障时不返回false,php,postgresql,Php,Postgresql,我正在尝试使用php中的pg_connect连接到postgres数据库。如果我为测试提供了错误的凭据,它不会返回false 相反,它的返回值低于错误值 说明: pg_connect():无法连接到PostgreSQL server:无法连接到服务器:连接被拒绝 <?php function getdb() { $db = pg_connect("...") or die('connection failed'); return $db; } ?> 我认为这里的问题

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

相反,它的返回值低于错误值

说明:


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

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

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

print(false); //prints nothing
如果要查看变量的实际值,请改用var_dump():


正如有人在评论中所说,您应该在这里检查:

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

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


这就是您要找的。如果您使用的是linux或centos,请检查此链接谢谢Samir,它使用覆盖错误句柄工作过尝试使用上述函数,但仍然出现错误。我收到相同的错误pg_connect():无法连接到PostgreSQL server:无法连接到服务器:拒绝连接可能版本不同。按照下面的链接检查您的版本
<?php
$db = @pg_connect("...") or die("failed");
if( $db == "failed"){
  // false
}
else {
  // true
}
?>