Il y a trois façons de passer des données pour transformation à l'objet :
avec une requête directe
Cette façon a été détaillée dans la première partie de l'introduction.
avec un objet DB_result existant
Si vous avez besoin de l'API complète de PEAR::DB ou PEAR::MDB, vous devriez choisir cette façon.
avec un tableau
Ce n'est pas directement une transformation SQL en XML ; si vous passez un tableau indexé à l'instance, les clés du tableau seront transformées en tag XML et leurs valeurs seront placées dans le contenu du tag. Cette fonctionnalité vous aident à ajouter des données à un jeu de résultats transformés XML.
Ce comportement se connecte au DBMS, exécute la requête et traite le résultat automatiquement. XML_sql2xml requière un DSN valide comme paramètre du construteur. La requête doit être passée à la méthode getXML() ou add().
Lisez la première partie de l'introduction pour des exemples.
PEAR::DB et PEAR::MDB retournent le jeu de résultats de la requête comme objet DB_result. Vous devez fournir une instance DB_common au construteur et l'instance DB_result à la méthode getXML() ou add().
Passer un objet DB_Result
<?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);
?>
L'affichage XML dans le paramètre $xmlstring est égal à l'exemple dans "L'utilisation typique".
Cette façon est la seule, si vous voulez bénéficier de toutes les fonctionnalités de l'APIs de la base de données.
Si vous passez un tableau indexé à la méthode getXML() ou add(), il sera transformé en un document XML.
Passer un tableau
<?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);
?>
Le XML résultant dans le paramètre $xmlstring :
<?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>
Vous pouvez appeler la méthode add() pour ajouter des jeux de résultats à un document XML. Appeler juste la méthode pour chaque jeu de résultats ; si vous avez ajouté tous les jeux de résultats, appelez getXml() sans aucun argument pour récupérer le document XML.
Ajout de jeux de résultats
<?php
$sql2xmlclass->add("select * from bands");
$sql2xmlclass->add("select * from albums");
$xmlstring= $sql2xmlclass->getxml();
?>