En el blog de David Walsh he encontrado un interesante script con el que poder realizar un backup de una base de datos mysql a xml. El script es compatible tanto con PHP4 como con PHP5
<?php
'.$br;
$xml.= ''.$br;
//PARA CADA TABLA...
while($table = mysql_fetch_row($result)) {
$xml.= $tab.''.$br;
//OBTENEMOS LAS FILAS
$query3 = 'SELECT * FROM '.$table[0];
$records = mysql_query($query3,$link) or die('cannot select from table: '.$table[0]);
//ATRIBUTOS DE LA TABLA
$attributes = array('name','blob','maxlength','multiple_key','not_null','numeric','primary_key','table','type','default','unique_key','unsigned','zerofill');
$xml.= $tab.$tab.''.$br;
$x = 0;
while($x < mysql_num_fields($records)) {
$meta = mysql_fetch_field($records,$x);
$xml.= $tab.$tab.$tab.'$attribute.'" ';
}
$xml.= '/>'.$br;
$x++;
}
$xml.= $tab.$tab.''.$br;
$xml.= $tab.$tab.''.$br;
while($record = mysql_fetch_assoc($records))
{
$xml.= $tab.$tab.$tab.''.$br;
foreach($record as $key=>$value)
{
$xml.= $tab.$tab.$tab.$tab.'<'.$key.'>'.htmlspecialchars(stripslashes($value)).''.$key.'>'.$br;
}
$xml.= $tab.$tab.$tab.''.$br;
}
$xml.= $tab.$tab.''.$br;
$xml.= $tab.'
'.$br;
}
$xml.= '';
//GUARDAMOS EL FICHERO
$handle = fopen($name.'-backup-'.time().'.xml','w+');
fwrite($handle,$xml);
fclose($handle);
}
?>