PHP入門 - 日本PostgreSQLユーザ会 トップページ

PHP入門
PHP PostgreSQLプログラミング入門
[email protected]
大垣 靖男
PHPとは





PHP/FIとして誕生
PHP3でスクリプティング言語としての地位
を確立
PHP4は世界中の900万以上のドメインで
利用、19ヶ国語のマニュアル
PHP/GTKによりGUIプログラミングも可能
現在PHH5がアルファリリース
PHPの特徴

サーバーサイドスクリプト言語として誕生






HTML埋め込み
弱いデータ型、リソースの自動管理
C/C++、Javaに似た簡潔な構文
HTTPセッションサポート
多くのデータベースをサポート
XML、イメージ処理、PDF、Flash、LDAP、
IMAP、etc
PHPを利用しているサイト


Yahoo USがPHPをスクリプティング言語と
して採用
MSN Present http://present.msn.co.jp/
Hello World
PHPの Hello Worldプログラム
<?php
echo “hello world\n”;
?>

HTTP変数の自動初期化
$_GET/$_POST/$_COOKIE
<?php
var_dump($_GET);
var_dump($_POST);
var_dump($_COOKIE);
?>

HTTPセッション管理
HTTPセッション管理
<?php
session_start();
var_dump($_SESSION);
?>

PostgreSQLモジュール




PHPのデータベースモジュールの中で最も
良くメンテナンスされているデータベースモ
ジュールの一つ
基本的な関数から高度な処理を行う関数
まで用意されている
libpqの関数をほぼ網羅
永続的なデータベース接続、ラージオブ
ジェクト、リソースの自動管理
PostgreSQLへの接続
<?php
$db = pg_connect(‘host=localhost
user=yohgaki’);
$db = pg_pconnect(‘host=localhost
user=yohgaki’);
?>
クエリーの実行(1)
<?php
$result = pg_qeury($db,
‘SELECT * FROM table’);
?>
クエリーの実行(2)
<?php
pg_send_qeury($db, ‘SELECT * FROM table’);
$result = pg_get_result($db);
?>
クエリー結果の利用
<?php
while($row = pg_fetch_assoc($result)) {
var_dump($row);
}
?>
ラージオブジェクト
<?php
$oid = pg_lo_create($db);
pg_query($db, 'BEGIN;');
$lo = pg_lo_open($db, $oid, 'rw');
pg_lo_write($lo, 'large object test');
pg_lo_close($lo);
pg_query($db, 'END;');
?>
非同期通知
<?php
$pg_query($db, ‘LISTEN msg’);
$msg = pg_get_notify($db);
?>
エスケープ処理
<?php
$str = pg_escape_string($str);
$bin = pg_escape_bytea($bin);
$data[‘id’] = 1234;
$data[‘name’] = ‘Yasuo Ohgaki’;
$data = pg_convert($db, ‘table’, $data);
?>
配列によるレコード操作
<?php
$data[‘name’] = ‘Yasuo’;
$data[‘password’] = ‘Ohgaki’;
$cond[‘id’] = 1234;
pg_update($db, ‘user’, $cond, $data);
?>
PostgreSQLモジュールの関数


現在(2002/11/4)、PostgreSQL用に68の
モジュール関数が定義されている
今後、pg_meta_data関数のメタデータ
キャッシュ、pg_convert関数のユーザー定
義型サポート、非同期接続関数を追加予
定。