PHP を Postgres SQL と通信させるのに最も苦労しました。これが私のセットアップです:
Ubunu デスクトップ 13.10
PHP 5.5.3
Postgres 9.1.10
Apache 2.4.6
Netbeans 7.4 xdebug 付き
すべてが正常に機能しています。コマンドラインからPostgresデータベースにデータを入力して取得することはできますが、PHPではできません。接続に使用しているコード行は次のとおりです。
$dbConn = new softwareDB('localhost', 'postgres', 'root', 'softwareuitest');
...
$results = $dbConn.getClients();
while($client = pg_fetch_result($results)){
echo '<option value=\"'.$client.'\">'.$client.'</option>';
}
softwareDB クラスのコンストラクターは次のとおりです。
Class softwareDB {
private $conn;
function _construct($host, $user, $password, $dbname) {
$connectString =
'host=' . $host .
' port=5432' .
' user=' . $user .
' password=' . $password .
' dbname' . $dbname;
$this->conn = pg_connect($connectString);
}
...
public function getClients() {
global $conn;
return pg_query($conn,'getClients','SELECT * FROM clients');
}
...
}
コードを実行しても何も起こりません... Apache ログ ファイルには何も表示されず、postgres ログにも何も表示されず、デバッガーからも何も表示されず、出力には HTML (クエリ データなし) のみが表示されます。
まだ画像を投稿できませんが、phpInfo() からの Postgres に関する詳細は次のとおりです。
PDO
PDO ドライバー | pgsql
pdo_pgsql
バージョン 9.1.9
モジュール 1.0.2
リビジョン $id$
pgsql
PostgreSQL(libpq) | x86_64-unknown-linux-gnu 上の PostgreSQL 9.1.9、gcc でコンパイル (Ubuntu/Linaro 4.8.1-10ubuntu1) 4.8.1、64 ビット allow_persistent がオン