...

pureXML 日本アイ・ビー・エム株式会社 ソフトウェア・エバンジェリスト 中林 紀彦

by user

on
Category: Documents
29

views

Report

Comments

Transcript

pureXML 日本アイ・ビー・エム株式会社 ソフトウェア・エバンジェリスト 中林 紀彦
®
pureXMLの活用 PHPからXQueryを使用する
日本アイ・ビー・エム株式会社
ソフトウェア・エバンジェリスト
中林 紀彦
© 2009 IBM Corporation
XQuery
© 2009 IBM Corporation
XQuery解説
DB2 9.5新機能概要&XMLハンズオンセミナー資料
– http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/001B138C
3. XQuery解説
– XQuery
• XQueryが主言語
• オプショナル: XQueryにSQLを埋め込む
– SQL/XML
• SQL が主言語
• オプショナル: SQLにXQueryを埋め込む
4. XQueryを使ってみよう
– サンプル・データベースを使ってXQueryを実行します
© 2009 IBM Corporation
PHP
© 2009 IBM Corporation
Windowsサーバ環境のセットアップ
DB2のインストール(DB2 Express-C 9.5 for Windows クイックインストール)
– http://www.ibm.com/developerworks/jp/offers/db2express-c/installwin_v95/
Apacheのインストール
– http://httpd.apache.org/download.cgi
– apache_2.2.11-win32-x86-no_ssl.msi
PHPのインストール
– http://www.php.net/downloads.php
– php-5.2.6-win32-installer.msi
– 最新の5.2.8にはibm_db2などのExtensionが含まれないので注意
– ibm_db2とPDO_IBMのExtensionをインストール
– httpd.confを編集し、index.phpを追加します
• DirectoryIndex index.html index.php
• Apacheの再起動は忘れずに
© 2009 IBM Corporation
Windowsクライアント環境のセットアップ(1)
IBM Data Studio 2.1(Eclipse 3.4)
– ダウンロード
• http://www.ibm.com/developerworks/downloads/im/datastudiodev/
• 30日評価版となっていますが、拡張機能以外は無償で利用できます
– マニュアル
• http://publib.boulder.ibm.com/infocenter/idm/v2r1/index.jsp
PDT 2.0
– Data Studioへのインストール
• Eclipseの「ソフトウェア更新」で簡単にインストールできます
– http://wiki.eclipse.org/PDT/Installation
• デバック環境の構成
– http://www.zend.co.jp/tech/index.php?%B4%C4%B6%AD%B9%BD%C3%DB%2F%A5%C7
%A5%D0%A5%C3%A5%B0%B4%C4%B6%AD%A4%CE%BA%EE%C0%AE
– All in oneパッケージ(Debugger付)もあります
• http://www.zend.com/en/community/pdt
© 2009 IBM Corporation
【参考】 デバッグ環境の構成Tips
dummy.phpのコピー
– PHP Serverの設定で指定したURLで表示される場所にコピー
• http://localhost/eclipse/dummy.php
クライアントのIPアドレス
– Vmwareなどをインストールしていると複数のIPアドレスが振られている
ので注意
– zend_debugger.allow_hosts=127.0.0.1/32,192.168.222.1
© 2009 IBM Corporation
Windowsクライアント環境のセットアップ(2)
httpd.confにワークスペースを追加
<Directory "D:/Eclipse/workspaceds21">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /eclipse D:/Eclipse/workspaceds21
Eclipse側の設定
– 「ウインドウ」->「設定」
• 「PHP」->「PHP Servers」を変更
• httpd.confに合わせる
– 例) /eclipse
© 2009 IBM Corporation
Windowsクライアント環境のセットアップ(3)
© 2009 IBM Corporation
pureXMLにアクセスするためのドライバ
「PECL : ibm_db2」
– http://pecl.php.net/package/ibm_db2
「IBM DB2、Cloudscape および Apache Derby」
– http://jp.php.net/manual/ja/book.ibm-db2.php
「PECL : PDO_IBM」
– http://pecl.php.net/package/PDO_IBM
「IBM 関数 (PDO_IBM)」
– http://jp.php.net/manual/ja/ref.pdo-ibm.php
「Zend Core」
– http://www.zend.com/products/zend_core/
© 2009 IBM Corporation
PHPからpureXMLを利用するための手順
① DB2への接続
② XQuery、SQL/XMLの準備
③ XQuery、SQL/XMLの実行
④ 検索結果の取り出し
© 2009 IBM Corporation
① DB2への接続
db2_connect
– http://jp.php.net/manual/ja/function.db2-connect.php
db2_pconnect
– http://jp.php.net/manual/ja/function.db2-pconnect.php
– コネクションがプールされますが接続数の上限は指定できないので、DB2
の接続コンセントレーターと組み合わせて利用することをお勧めします
db2_close
– http://jp.php.net/manual/ja/function.db2-close.php
© 2009 IBM Corporation
② XQuery、SQL/XMLの準備
db2_prepare
– http://jp.php.net/manual/ja/function.db2-prepare.php
db2_bind_param
– http://jp.php.net/manual/ja/function.db2-bind-param.php
© 2009 IBM Corporation
③ XQuery、SQL/XMLの実行
db2_execute
– http://jp.php.net/manual/ja/function.db2-execute.php
– db2_execute() は、db2_prepare() で準備されたSQL 文を実行します
db2_exec
– http://jp.php.net/manual/ja/function.db2-exec.php
– db2_exec()は、SQL 文を直接実行します
© 2009 IBM Corporation
④ 検索結果の取り出し
db2_fetch_array
– http://jp.php.net/manual/ja/function.db2-fetch-array.php
– 結果セット内の行を表す、カラム位置をインデックスとする配列を返します
。インデックスは 0 から始まります
db2_fetch_assoc
– http://jp.php.net/manual/ja/function.db2-fetch-assoc.php
– 結果セット内の行を表す、カラム名をインデックスとする配列を返します。
db2_fetch_both
– http://jp.php.net/manual/ja/function.db2-fetch-both.php
© 2009 IBM Corporation
サンプルコードの説明
© 2009 IBM Corporation
注意点など
XQueryを実行する際の注意点
– デフォルトではXML宣言が付くため、db2cli.iniで設定の必要があります
• db2cli.iniは、「C:¥Program Files¥ibm¥SQLLIB」以下に置きます
• COMMONセクションで、“XMLDeclaration=0”を指定します
– PDOではXQueryが実行できないケースがあります
• PDOでは、DB2独自関数(db2-fn:xmlcolumnなど)のコロンをパラメータとして
認識してしまいます
© 2009 IBM Corporation
【参考】 pureXMLサンプル
pureXMLサンプル・データベース
– http://ibm.com/developerworks/jp/data/library/dataserver/j_dxmlsampledb/
pureXMLサンプル・アプリケーション
– http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/0056D80B
© 2009 IBM Corporation
【参考】 PHPでXMLを操作する
DOMに関するドキュメント
– http://jp.php.net/manual/ja/ref.dom.php
SimpleXML関数に関するドキュメント
– http://jp.php.net/manual/ja/ref.simplexml.php
© 2009 IBM Corporation
【参考】 DOMのサンプル
<?php
// DOMのサンプル
$dom = new DOMDocument('1.0', 'UTF-8');
$root = $dom->createElement("response");
$dom->appendChild($root);
// エレメント(要素)の追加
$element = $dom->createElement('test', 'This is the root element!');
// アトリビュート(属性)の追加
$element->setAttribute('att', '12345');
//
$root->appendChild($element);
//
echo $dom->saveXML();
?>
© 2009 IBM Corporation
【参考】 SimpleXML関数のサンプル
<?php
// SimpleXML関数のサンプル
$xmls = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"
?><response></response>');
// エレメント(要素)の追加
$xml = $xmls->addChild('rest');
// アトリビュート(属性)の追加
$xml->addAttribute('order', '1');
// エレメント(要素)の追加
$xml->addChild('id', '12345');
//
echo $xmls->asXML();
?>
© 2009 IBM Corporation
Idea
© 2009 IBM Corporation
プログラミング・コンテストのヒント
XQueryで簡単マッシュアップ・プログラミング
– http://www.ibm.com/developerworks/jp/data/library/dataserver/j_dxquerymashup/
© 2009 IBM Corporation
END
© 2009 IBM Corporation
Fly UP