在 Ubuntu 11.04 服务器中启用对 postgresql 的 PHP 支持

2022-08-30 19:38:26

我已经安装了支持php5的Apache2,一切都在那里工作。我已经安装了PostgreSQL,并且能够使用终端连接到它并执行SQL语句。

问题:我无法在我的php脚本和PostgreSQL数据库之间建立有效的连接。我已经安装了从存储库打包的php5-pgsql,但连接不起作用。

我收到以下错误消息:

PHP 致命错误:在 /var/www/[myfile]中调用未定义的函数 pg_connect() .php行 [X]

如何在 ubuntu 11.04 的 PHP5 中启用对 PostgreSQL 连接的支持?

编辑:检查phpinfo()并未找到PostgreSQL的条目。我不知道为什么会这样,我确实为ubuntu 11.04安装了php5-pgsql软件包。

以下是有效的方法:我从Ubuntu存储库中安装了phppgadmin。这不仅为我提供了一个很好的工具,而且还安装了php连接到postgresql所需的软件包。

之后,一切都在连接参数中。它不会连接到本地服务器上的数据库,直到我在pg_connect()中按该顺序定义了连接主机、端口、数据库、用户和密码。

我仍然不知道为什么我自己安装php5-pgsql没有从php启用PostgreSQL连接。对此的任何投入都会有所帮助。


答案 1

安装php5-pgsql软件包可以解决这个问题。(取决于版本...php4-pgsql for php4)

apt-get install php5-pgsql

请记住重新启动 Apache。

/etc/init.d/apache2 restart

--请注意,如果不管理服务器,可能会很困难。


答案 2

目前,我正在使用Ubuntu 16.04 LTS。我在使用Php获取Postgress数据库值时也遇到了同样的问题,所以我使用以下命令解决了这个问题。

我的PHP版本是7.0,所以我尝试了以下命令。

apt-get install php-pgsql

请记住重新启动 Apache

/etc/init.d/apache2 restart

以下是我的代码,可能会有人受益:

- testdb.php

<html> 
    <body> 
        <table border="0" cellspacing="0" cellpadding="0"> 
            <tr> 
                <td> 
                    Friend ID 
                </td> 
                <td> 
                     Name 
                </td> 

            </tr> 
        <?php 
        $db = pg_connect('host=localhost dbname=postgres user=postgres password=root port=5432'); 

        $query = "SELECT * FROM account"; //account is name of table 

        $result = pg_query($query); 
        if (!$result) { 
            echo "Problem with query " . $query . "<br/>"; 
            echo pg_last_error(); 
            exit(); 
        } 

        while($myrow = pg_fetch_assoc($result)) { 
            printf ("<tr><td>%s</td><td>%s</td></tr>", $myrow['id'], htmlspecialchars($myrow['name']));
        } 
        ?> 
        </table> 
    </body> 
</html> 

推荐