PostgreSQL 関数
PostgreSQL
&reftitle.intro;
PostgreSQL データベースはオープンソースの製品であり、無料で
使用可能です。Postgres は元々 UCB(カリフォルニア大学バークレイ校)
コンピュータ・サイエンス学部で開発されたものです。この Postgres は、
現在いくつかの商用データベースにおいてサポートされつつある
オブジェクトリレーショナルデータベース的概念の多くの先駆けでした。
Postgres は、SQL92/SQL99 言語サポート・トランザクション・参照整合性・
ストアドプロシージャ・拡張可能な型を提供しています。PostgreSQL は、
バークレイ校での Postgres のオリジナルコードの、オープンソースの
子孫にあたります。
&reftitle.required;
PostgreSQL サポートを使用するには、PostgreSQL 6.5 以降が必要です。
PostgreSQL 8.0 以降では PostgreSQL モジュールの全ての機能を使用可能
です。PostgreSQL は、マルチバイト文字エンコーディングを含む多くの
文字エンコーディングをサポートしています。現在のバージョン及び
PostgreSQLに関するより詳細な情報は、
&url.pgsql; と
PostgreSQL Documentation
で入手可能です。
&reference.pgsql.configure;
&reference.pgsql.ini;
&reftitle.resources;
PostgreSQL モジュールで使用されるリソース型は 2 種類あります。ひとつは
データベース接続のリンク ID で、もうひとつはクエリの結果を保持する
リソースです。
&reference.pgsql.constants;
&reftitle.notes;
すべての関数がすべての構築環境でサポートされるわけではありません。
サポートされる関数は、使用する libpq(PostgreSQL の C クライアント
ライブラリ)のバージョンと libpq のコンパイル方法に依存します。
もし PHP の PostgreSQL 拡張モジュールに足りない関数がある場合、
その原因は libpq はその関数をサポートしていないことです。
ほとんどの PostgreSQL 関数は、オプションの第 1 引数として
connection を受け付けます。もしこれを
指定しなかった場合、直近にオープンされた接続を使用します。
そのような接続が存在しなかった場合、関数は &false; を返します。
PostgreSQL は、オブジェクトの生成時やクエリの実行時に
識別子(例: テーブル名・カラム名)を自動的に小文字に変換します。
この自動変換を防ぐには、識別子をダブルクォート("")でエスケープする
必要があります。
PostgreSQL には、データベースのスキーマ情報(例: データベース内の
すべてのテーブルなど)を取得するための特別なコマンドがありません。
その代わりに、PostgreSQL 7.4 以降では information_schema
という標準スキーマが存在し、必要な情報が検索しやすい形式で格納されています。
詳しい情報は PostgreSQL ドキュメンテーション
を参照ください。
&reftitle.examples;
この例では、PostgreSQL への接続・クエリの実行・結果の表示
そして切断の方法を説明します。
PostgreSQL 拡張モジュールの概要
\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
echo "\t\n";
foreach ($line as $col_value) {
echo "\t\t| $col_value | \n";
}
echo "\t
\n";
}
echo "\n";
// 結果セットを開放する
pg_free_result($result);
// 接続をクローズする
pg_close($dbconn);
?>
]]>
&reference.pgsql.functions;