XLIX. PostgreSQL 関数
Postgresは元々UCB(カリフォルニア大学バークレイ校)コンピュータ・サイエンス
学部で開発されたものです。このPostgresは、
いくつかの商用データベースにおいてサポートされつつあるオブジェクト
リレーショナルデータベース的概念の多くの先駆けでした。
PostgreSQLは、SQL92/SQL3言語サポート、トランザクション機能、
拡張可能な型を提供しています。
PostgreSQLは、パブリック・ドメイン、オープンソースで、オリジナルの
バークレイ・コードから発展してきた子孫にあたります。
PostgreSQLは無料で利用できます。現在のバージョン
はwww.PostgreSQL.orgで入手可能です。
バージョン6.3(03/02/1998)以降、PostgreSQLはUNIXドメインソケットを
使用しています。これらの新しいコネクションの使用例を以下に示す表に
示します。このソケットは/tmp/.s.PGSQL.5432にあります。
このオプションはpostmasterに対して'-i'フラグを
指定することで有効となります。これは "Unixドメインソケット以外のTCP/IP
ソケットもlisten する"という意味です。
表 1. PostmasterとPHP
| Postmaster | PHP | ステータス |
|---|
| postmaster & | pg_connect("", "", "", "", "dbname"); | OK |
| postmaster -i & | pg_connect("", "", "", "", "dbname"); | OK |
| postmaster & | pg_connect("localhost", "", "", "", "dbname"); | 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("localhost", "", "", "", "dbname"); | OK |
次のコマンドでも接続を確立することができます。
$conn = pg_Connect("host=localhost port=5432
dbname=chris");
ラージオブジェクト(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")
?>
|
|