问题
I've installed Apache2 with php5 support and everything works there. I've installed PostgreSQL and am able to connect to it using the terminal and execute SQL statements.
PROBLEM: I can't get a working connection between my php scripts and the PostgreSQL database. I have installed the php5-pgsql packaged from the repositories, but the connection just won't work.
I get the following error message:
PHP Fatal Error: Call to undefined function pg_connect() in /var/www/[myfile].php on line [X]
How do I enable support for PostgreSQL connections in PHP5 in ubuntu 11.04?
EDIT: Checked phpinfo() and found no entries for PostgreSQL. I don't know why that is so, I DID install php5-pgsql package for ubuntu 11.04.
Here is what worked: I installed phppgadmin from the Ubuntu repositories. Not only does this make a nice tool available for me now, it also installed the needed packages for php to connect to postgresql.
After that, it was all in the connection parameters. It wouldn't connect to the database on the local server until I defined the connection host, port, database, user, and password in that order in pg_connect().
I still don't know why installing php5-pgsql on my own didn't enable PostgreSQL connections from php. Any input on this would be helpful.
回答1:
Install the php5-pgsql package solves the problem. (depending on the version ... php4-pgsql for php4)
apt-get install php5-pgsql
Remember to restart Apache.
/etc/init.d/apache2 restart
--Note that it might be hard if you do not administer your server.
回答2:
Currently, I am using Ubuntu 16.04 LTS. Me too was facing same problem while Fetching the Postgress Database values using Php so i resolved it by using the below commands.
Mine PHP version is 7.0, so i tried the below command.
apt-get install php-pgsql
Remember to restart Apache.
/etc/init.d/apache2 restart
Below is my code , might be someone get benefited :
- 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>
回答3:
The only conclusion I can come up with is that phppgadmin installed all of the needed packages to make PHP5 connect to PostgreSQL. I have looked at the dependencies, and I believe that I either didn't install them at all or didn't install them correctly.
I require no more help in this arena, as I have a working setup and know at least one method of getting to that point.
来源:https://stackoverflow.com/questions/7641024/enable-php-support-for-postgresql-in-ubuntu-11-04-server