警告 |
PHP 4.0.6の通知メッセージ処理にはバグがあるため、PHP 4.0.6で PostgreSQLモジュールを使用することは推奨されません。 |
Postgresは元々UCB(カリフォルニア大学バークレイ校)コンピュータ・サ イエンス学部で開発されたものです。このPostgresは、いくつかの商用デー タベースにおいてサポートされつつあるオブジェクトリレーショナルデー タベース的概念の多くの先駆けでした。PostgreSQLは、SQL92/SQL3言語サ ポート、トランザクション機能、拡張可能な型を提供しています。 PostgreSQLは、パブリック・ドメイン、オープンソースで、オリジナルの バークレイ・コードから発展してきた子孫にあたります。
PostgreSQLデータベースはオープンソースのプロダクツであり、無料で使 用可能できます。PostgreSQLサポートを使用するには、PostgreSQL 6.5以 降が必要です。PostgreSQL 7.0以降ではPostgreSQLモジュールの全ての機 能が使用可能です。PostgreSQLは、マルチバイト文字エンコーディングを 含む多くの文字エンコーディングをサポートしています。現在のバージョ ン及びPostgreSQLに関するより詳細な情報は、www.postgresqlL.orgで入手可能です。
PostgreSQLサポートを利用可能とするには、PHPコンパイル時に "--enable-pgsql[=DIR]" を指定することが必要です。共有オ ブジェクトモジュールが利用可能な場合、PostgreSQLはphp.iniの extensionまたは dl()関数を使用してロードすることが可能です。 サポートされるini命令は、配布ソースに付属するphp.ini-distファイル に記述されています。
全ての関数が全ての構築環境でサポートされるわけではありません。サポー トされる関数は、使用するlibpq(PostgreSQLのCクライアントインターフェ イス)のバージョンとlibpqのコンパイル方法に依存します。足りない関数 がある場合、libpqはその関数を必要とする機能をサポートしません。
接続するPostgreSQLサーバーよりも新しいlibpqを使用することも重要で す。使用するlibpqのバージョンがPostgreSQLサーバが期待するよりも古 い場合、問題を生じる可能性があります。
バージョン6.3(1998/3/2)以降、PostgreSQLはUNIXドメインソケットを 使用しています。これらの新しいコネクションの使用例を以下に示す表に 示します。このソケットは/tmp/.s.PGSQL.5432にあります。 このオプションはpostmasterに対して'-i'フラグを 指定することで有効となります。これは "Unixドメインソケット以外のTCP/IP ソケットもlisten する"という意味です。
表 1postmasterとPHP
postmaster | PHP | ステータス |
---|---|---|
postmaster & | pg_connect("dbname=MyDbName"); | OK |
postmaster -i & | pg_connect("dbname=MyDbName"); | OK |
postmaster & | pg_connect("host=localhost dbname=MyDbName"); | Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php3 on line 20. |
postmaster -i & | pg_connect("host=localhost dbname=MyDbName"); | OK |
次のコマンドでも接続を確立することができます。 $conn = pg_Connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword");
以前の構文: $conn = pg_connect ("host", "port", "options", "tty", "dbname") は推奨されません。
環境変数は、PostgreSQLサーバ/クライアントの動作に影響を与えます。 例えば、PostgreSQLモジュールは、ホスト名が接続文字列で省略された場 合、環境変数PGHOSTを探します。サポートされる環境変数は、バージョン 毎に異なります。詳細は、PostgreSQLプログラマ用マニュアル(libpq - 環境変数)を参照下さい。
PostgreSQL 7.1.0から、textデータ型の最大サイズは1GBとなっています。 古いPostgreSQLのtextデータ型はブロックサイズ(デフォルトは8KB、最大 32KBをコンパイル時に定義可能)の制限を受けていました。
ラージオブジェクト(lo)インターフェースを使用するには、そのクエリーを トランザクション・ブロックの中に入れてやる必要があります。 トランザクション・ブロックはbeginで始まり、 そのトランザクションが有効な場合はcommitまたは endで終わります。トランザクションが失敗した場合、 そのトランザクションはrollbackまたは abortにより閉じる必要があります。
例 2ラージオブジェクトの使用例
|