Php5をサポートするApache2をインストールしましたが、すべて動作します。 PostgreSQLをインストールし、ターミナルを使用して接続し、SQLステートメントを実行できます。
問題:phpスクリプトとPostgreSQLデータベースの間の接続を正常に確立できません。リポジトリからパッケージ化されたphp5-pgsqlをインストールしましたが、接続が機能しません。
次のエラーメッセージが表示されます。
PHP致命的エラー:[X]行で/var/www/[myfile].phpの未定義関数pg_connect()を呼び出します
Ubuntu 5でPHP5のPostgreSQL接続のサポートを有効にするにはどうすればよいですか?
編集:phpinfo()をチェックし、PostgreSQLのエントリが見つかりませんでした。なぜそうなのかわかりません。IDID= ubuntu 11.04用のphp5-pgsqlパッケージをインストールしてください。
動作したのは次のとおりです。Ubuntuリポジトリからphppgadminをインストールしました。これにより、Niceツールが利用可能になっただけでなく、phpがpostgresqlに接続するために必要なパッケージもインストールしました。
その後、すべてが接続パラメーターに含まれていました。 pg_connect()で接続ホスト、ポート、データベース、ユーザー、パスワードをこの順序で定義するまで、ローカルサーバー上のデータベースに接続しません。
Php5-pgsqlを自分でインストールしてもphpからのPostgreSQL接続が有効にならない理由はまだわかりません。これに関する入力は役に立ちます。
php5-pgsqlパッケージをインストールすると問題が解決します 。 (バージョンによって異なります... php4-pgsql for php4)
apt-get install php5-pgsql
Apacheを再起動することを忘れないでください。
/etc/init.d/Apache2 restart
-サーバーを管理しないと難しい場合があることに注意してください。
現在、Ubuntu 16.04 LTSを使用しています。私もPhpを使用してPostgress Databaseの値を取得する際に同じ問題に直面していたので、以下のコマンドを使用して解決しました。
私のPHPバージョンは7.0なので、以下のコマンドを試しました。
apt-get install php-pgsql
Apacheを再起動することを忘れないでください。
/etc/init.d/Apache2 restart
以下は私のコードです、誰かが恩恵を受けるかもしれません:
<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>
私が思いつく唯一の結論は、phppgadminがPHP5をPostgreSQLに接続するために必要なすべてのパッケージをインストールしたということです。依存関係を調べましたが、まったくインストールしていないか、正しくインストールしていないと思います。
作業環境があり、そのポイントに到達するための少なくとも1つの方法を知っているので、この分野でこれ以上の助けは必要ありません。