導入
導入 – データを変化させる
概要
データをオブジェクトへ変化させるには3つの方法があります。
-
直接クエリを用いて
先に はじめに にある導入を読んでおいてください。
-
既存の DB_result オブジェクトを用いて
もし貴方が PEAR::DB の全出力が可能であるか
PEAR::MDB API が利用可能であるならば、こちらを選ぶべきです。
-
配列を用いて
これは SQL を直接 XML へ変換させるものではありません。 連想配列をインスタンスへ
渡した場合、配列のキーは XML のタグになり、配列の値はタグの内容に変換されます。
この特徴はデータを与えることで XML の結果を変化させることに役立つことです。
Direct query
これは DBMS に接続し、問い合わせと取得を自動的に行います。
XML_sql2xml は有効な
DSN を コンストラクタ パラメータ
に必要とします。
クエリは getXML()
か add()
メソッドに渡さなければなりません。
はじめに に導入例があるので見てださい。
DB_Result オブジェクトを渡す
PEAR::DB
と PEAR::MDB は DB_result として
リザルトセットを返します。
あなたは DB_common インスタンスを コンストラクタ に、
そして DB_result インスタンスを getXML()
か add()
に提供しなければなりません。
<?php
require_once "XML/sql2xml.php";
require_once "DB.php";
$db = db::connect("mysql://username:password@localhost/xmltest");
$result = $db->query("select * from bands");
$sql2xmlclass = new xml_sql2xml($db);
$xmlstring = $sql2xmlclass->getxml($result);
?>
$xmlstring
への XML 出力は、
"典型的な使用" の例と一緒です。
あなたがデータベース API すべての特徴の恩恵を受けたいのなら、この方法しかありません。
配列を渡す
あなたが入れ子状になった配列を getXML()
か add()
に渡せば、 XML ドキュメントに変換されます。
<?php
require_once "XML/sql2xml.php";
$sql2xmlclass = new xml_sql2xml();
$array = array (
array("name"=>"The Blabbers",
"birth_year"=>"1998",
"birth_place"=>"London",
"genre"=>"Rock'n'Roll"),
array("name"=>"Only Stupids",
"birth_year"=>"1997",
"birth_place"=>"New York",
"genre"=>"hiphop")
);
$xmlstring = $sql2xmlclass->getXML($array);
?>
$xmlstring
に代入された XML の出力
<?xml version="1.0"?>
<root>
<result>
<row>
<name>The Blabbers</name>
<birth_year>1998</birth_year>
<birth_place>London</birth_place>
<genre>Rock'n'Roll</genre>
</row>
<row>
<name>Only Stupids</name>
<birth_year>1997</birth_year>
<birth_place>New York</birth_place>
<genre>hiphop</genre>
</row>
</result>
</root>
もう一組のリザルトセットを渡す
add()
をコールすることで数個のリザルトセットを XML ドキュメントに追加することができます。
あらゆるリザルトセットにこのメソッドをコールし、すべてのリザルトセットを加えたなら、
XML 文書を得るために
引数なしで getXml()
をコールしてください。
<?php
$sql2xmlclass->add("select * from bands");
$sql2xmlclass->add("select * from albums");
$xmlstring= $sql2xmlclass->getxml();
?>