2009-07-16 6 views
0

Je veux convertir toute ma table MySQL en XML ... Quelqu'un peut-il m'aider avec un tutoriel ou un code.MySQL en XML

+0

Voulez-vous faire une fois ou régulièrement par une interface web? – acrosman

+0

utiliser phpMyAdmin pour exporter dans divers formats, y compris XML –

Répondre

0

La documentation de mysql a une page sur using XML with MySQL. Il serait facile d'utiliser cette méthode avec un appel system pour obtenir les données déjà au format XML et éviter des problèmes. Mysqldump est capable de vider les données au format XML;

3

donc, avec quelque chose comme cela, vous pouvez obtenir ce que vous voulez:

mysqldump --user=USER --password=PASSWORD --host=HOST --xml DATABASE TABLE 

Pour plus d'informations, consultez mysqldump

+0

Et si j'en ai besoin automatiquement à chaque fois – Kevin

+0

à chaque fois ... que se passe-t-il? Une insertion/mise à jour/suppression? Eh bien ... Si votre table est grande, vous ne devriez probablement pas l'utiliser trop souvent ^^ Vous ne pouvez pas obtenir le vidage généré, disons, une fois par jour (ou heure), via un travail cron? Si la table est petite et que vous avez besoin de ce vidage xml toujours à jour ... peut-être une solution non basée sur mysqldump (ie, basée sur le code) serait mieux ... –

3

Pour une simple liste des meilleurs scores pour un iPhone game j'ai écrit un petit php ... thingy son sortie peut être considérée here

<highscores> 
<?php 
// connection information 
    $hostName = "xxxx"; 
    $userName = "xxxx"; 
    $password = "xxxx"; 
    $dbName = "xxxx"; 

    mysql_connect($hostName, $userName, $password) 
       or die("Unable to connect to host $hostName"); 

    mysql_select_db($dbName) or die("Unable to select database $dbName"); 

    $query = "SELECT * FROM HIGHSCORES ORDER BY Distance, Fuel DESC LIMIT 10"; 

    $result = mysql_query($query); 

    $number = mysql_numrows($result); 

    for ($i=0; $i<$number; $i++) { 

    print " <entry>\n"; 
    printf(" <Num>%d</Num>\n", $i+1);; 

    $Nic = mysql_result($result, $i, "Nic"); 
    print " <Nic>$Nic</Nic>\n"; 

    $Distance = mysql_result($result, $i, "Distance"); 
    printf(" <Distance>%.9f</Distance>\n", $Distance); 

    $Fuel = mysql_result($result, $i, "Fuel"); 
    printf(" <Fuel>%.9f</Fuel>\n", $Fuel); 

    print " </entry>\n"; 

    } 

    mysql_close(); 

?> 
</highscores> 
+0

Mais je ne suis pas capable d'interpréter le $ nic ou distance ... comment va réellement appeler mes noms de champs avec des attributs. – Kevin

+1

Vous voulez créer automatiquement des entrées XML sans connaître la structure de la table? Cela ajoute une autre couche de complexité ... Je ne connais ma table et la sortie que ce dont j'ai besoin, la table est en fait plus grande et contient plus d'informations. – epatel

+0

J'ai besoin d'un pour créer des entrées XML pour mes noms de champs avec des valeurs. – Kevin

0

Je ne l'ai pas utilisé la fonction, mais XMLSpy peut créer un schéma de la structure de base de données. Il convertira également les données ou les mettra en correspondance avec XML en fonction d'une DTD ou d'un schéma existant.

1

mysql émet un document XML si vous utilisez l'option -X ou --xml:

mysql -X -e "SELECT * FROM mytable" dbname