Maison >base de données >tutoriel mysql >Comment générer des données MySQL au format XML en utilisant PHP ?

Comment générer des données MySQL au format XML en utilisant PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-10 00:13:02218parcourir

How to Output MySQL Data as XML Using PHP?

Requête de la base de données MySQL et sortie XML via PHP

Problème :
Extraire une sortie XML de colonnes spécifiques ("udid" et "country") à partir d'une table de base de données MySQL en utilisant PHP.

Solution :

Pour y parvenir, suivez ces étapes :

  1. Établir une connexion à la base de données : Se connecter à la base de données MySQL en utilisant mysql_connect() et mysql_select_db() de PHP fonctions.
  2. Exécuter la requête MySQL : Utilisez la fonction mysql_query() pour exécuter une requête SELECT qui récupère les colonnes souhaitées de la table de base de données.
  3. Initialisez XMLWriter : Créer un objet XMLWriter pour générer le XML sortie.
  4. Démarrer le document XML : Commencez le document XML en appelant la méthode startDocument() de l'objet XMLWriter.
  5. Démarrez l'élément racine : Créez l'élément racine du document XML (par exemple, « pays »).
  6. Boucle via MySQL Résultats : Parcourez les résultats de la requête MySQL et ajoutez chaque ligne en tant qu'élément enfant dans l'élément racine.
  7. Ajoutez des attributs et des éléments : Pour chaque ligne, définissez les attributs et écrivez les données pour les colonnes correspondantes.
  8. Fin du document XML : Fermez l'élément racine et le document XML à l'aide de endElement() et endDocument() de l'objet XMLWriter.

Code PHP :

mysql_connect('server', 'user', 'pass');
mysql_select_db('database');

$sql = "SELECT udid, country FROM table ORDER BY udid";
$res = mysql_query($sql);

$xml = new XMLWriter();

$xml->openURI("php://output");
$xml->startDocument();
$xml->setIndent(true);

$xml->startElement('countries');

while ($row = mysql_fetch_assoc($res)) {
  $xml->startElement("country");

  $xml->writeAttribute('udid', $row['udid']);
  $xml->writeRaw($row['country']);

  $xml->endElement();
}

$xml->endElement();

header('Content-type: text/xml');
$xml->flush();

Sortie :

<?xml version="1.0"?>
<countries>
 <country udid="1">Country 1</country>
 <country udid="2">Country 2</country>
 ...
 <country udid="n">Country n</country>
</countries>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn