postgresql 已通过 pgadmin4 激活,但在我的 php 代码中未显示任何内容

postgresql 已通过 pgadmin4 激活,但在我的 php 代码中未显示任何内容

我是 ubuntu 社区的新手,或者 linux 听起来更好。所以我对存储库和软件包了解不多。因此,我在 ubuntu 20.04 LTS 中安装了 xampp、postgresql 和 pgadmin4。没有任何错误显示,一切都很顺利。我的 php 代码执行正常。当我尝试将数据库连接到我的 php 代码时出现了问题。供您参考,我保留了用于检查数据库是否连接到 php 的简单数据库连接代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>pg con</title>
</head>
<body>
    <?php
    echo"something";
    $con=pg_connect("host=localhost port=5432 dbname=testdb username=naeem password=naeem");
    if(!$con)
    {
        echo"error while connecting to database";
        echo "<br>";
        echo pg_last_error($con);
    }
    else
    {
        echo "connection to database successfull";
    }
    ?>
</body>
</html>

正如您所看到的,"something"在连接到浏览器(firefox 和 chrome)上显示的数据库之前,我尝试进行回显,但使用后没有任何内容出现pg_connect()

以下是输出的屏幕截图:

请参阅此处的输出屏幕

答案1

除了检查连接之外,您可能还想扩展 PostgreSQL 连接代码以使用pg_last_error()。当出现问题时,这将为您提供更多详细信息:

if ( !$con || pg_last_error($con) ) {
    print_r("<h3>Error while connecting to database</h3>";
    print_r(pg_last_error($con));
} else {
    echo "<h3>Connection to database successful.</h3>";
}

关于连接字符串的一点说明:如果您使用的是全系列字符集(而不仅仅是 ASCII),则可能需要包含options='--client_encoding=UTF8'以确保 PHP 和 PostgreSQL 之间没有编码问题。这将为您提供如下所示的连接字符串:

host=[HOST] port=[PORT] dbname=[NAME] user=[USER] password=[PASS] options='--client_encoding=UTF8'

相关内容