LXVIIIPostgreSQL 関数

Postgresは元々UCB(カリフォルニア大学バークレイ校)コンピュータ・サ イエンス学部で開発されたものです。このPostgresは、 いくつかの商用データベースにおいてサポートされつつあるオブジェクト リレーショナルデータベース的概念の多くの先駆けでした。 PostgreSQLは、SQL92/SQL3言語サポート、トランザクション機能、 拡張可能な型を提供しています。 PostgreSQLは、パブリック・ドメイン、オープンソースで、オリジナルの バークレイ・コードから発展してきた子孫にあたります。

PostgreSQLは無料で利用できます。現在のバージョン はwww.PostgreSQL.orgで入手可能です。

バージョン6.3(1998/3/2)以降、PostgreSQLはUNIXドメインソケットを 使用しています。これらの新しいコネクションの使用例を以下に示す表に 示します。このソケットは/tmp/.s.PGSQL.5432にあります。 このオプションはpostmasterに対して'-i'フラグを 指定することで有効となります。これは "Unixドメインソケット以外のTCP/IP ソケットもlisten する"という意味です。

表 1PostmasterとPHP

PostmasterPHPステータス
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") は推奨されません。

ラージオブジェクト(lo)インターフェースを使用するには、そのクエリーを トランザクション・ブロックの中に入れてやる必要があります。 トランザクション・ブロックはbeginで始まり、 そのトランザクションが有効な場合はcommitまたは endで終わります。トランザクションが失敗した場合、 そのトランザクションはabortまたは rollbackにより閉じる必要があります。

例 1ラージオブジェクトの使用例


<?php
    $database = pg_Connect ("", "", "", "", "jacarta");
    pg_exec ($database, "begin");
    $oid = pg_locreate ($database);
    echo ("$oid\n");
    $handle = pg_loopen ($database, $oid, "w");
    echo ("$handle\n");
    pg_lowrite ($handle, "gaga");
    pg_loclose ($handle);
    pg_exec ($database, "commit")
?>
     

目次
pg_close -- PostgreSQLコネクションを閉じる
pg_cmdtuples -- 影響を受けたタプルの数を返す
pg_connect -- PostgreSQLコネクションを開く
pg_dbname -- データベース名の取得
pg_end_copy -- PostgreSQLバックエンドに同期する
pg_errormessage -- エラーメッセージの取得
pg_exec -- クエリーを実行する
pg_fetch_array -- 行を配列として取得する
pg_fetch_object -- 行をオブジェクトとして得る
pg_fetch_row -- 数字をインデックスとする配列として行を得る
pg_FieldIsNull -- フィールドがNULLかどうか調べる
pg_fieldname -- フィールドの名前を返す
pg_fieldnum -- カラム番号を返す
pg_fieldprtlen -- 表示される長さを返す
pg_fieldsize --  指定したフィールドの内部記憶領域におけるサイズを返す
pg_fieldtype --  フィールド番号に対応する型名を返す
pg_freeresult -- メモリを開放する
pg_getlastoid -- 直近のオブジェクトIDを返す
pg_host -- ホスト名を返す
pg_loclose -- ラージオブジェクトをクローズする
pg_locreate -- ラージオブジェクトを生成する
pg_loexport -- ラージオブジェクトをファイルにエクスポートする
pg_loimport -- ファイルからラージオブジェクトをインポートする
pg_loopen -- ラージオブジェクトをオープンする
pg_loread -- ラージオブジェクトを読み込み
pg_loreadall -- ラージオブジェクト全体を読み込む
pg_lounlink -- ラージオブジェクトを削除する
pg_lowrite -- ラージオブジェクトを書く
pg_numfields -- フィールド数を返す
pg_numrows -- 行数を返す
pg_options -- オプションを返す
pg_pconnect -- 持続的なデータベース接続を行う
pg_port -- ポート番号を返す
pg_put_line --  NULLで終る文字列をPostgreSQLバックエンドに送信する
pg_result -- 結果IDから実際の値を返す
pg_set_client_encoding --  PostgreSQLクライアントのエンコーディングを設定する
pg_client_encoding --  PostgreSQLクライアントのエンコーディングを取得する
pg_trace -- PostgreSQLサーバーへの接続をトレースする
pg_tty -- tty名を返す
pg_untrace --  PostgreSQLサーバーへの接続のトレースを無効にする