Introduction

Introduction – Passer les données à transformer

Vue d'ensemble

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.

Requête directe

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.

Passer un objet DB_Result

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.

Passer un tableau

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>

Passer plus d'un jeu de résultats

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();
?>