DataBase to XML - Exportar información de bases de datos MySQL a formato XML.

Más sobre el programa :: Requerimientos :: Videos :: Actualizaciones

Este script PHP es una sencilla herramienta de ayuda para poder convertir el contenido de una base de datos MySQL en un archivo XML.

Mas información sobre el programa.

Indice - Contenido.

  1. Conectar a la base de datos para crear el XML.
  2. Vista previa del formulario y del XML.
  3. Código fuente PHP.

 

1 - Conectar a la base de datos y crear el XML.

El script es muy sencillo de utilizar, con tan solo indicar los datos de conexión a la base de datos ( Nombre de usuario, contraseña y el hostname) se encargará de generar el archivo XML.

El contenido del XML contendrá la información de tablas de todas las bases de datos del usuario que se especifique en el formulario, así como también la información de cada campo ( El nombre, el tipo de dato que almacena, etc ..)

2 - Vista previa del formulario y del XML.

Aquí puedes ver el formulario web HTML para completar la información de conexión a MySQL.

Este es el resultado de ejemplo con todas las bases de datos del usuario ( el código XML)

3 - Código fuente PHP.

Este es el código PHP. Puedes pegar el siguiente código en un fichero PHP, luego ubicarlo en una carpeta del servidor y ejecutarlo para desplegar el formulario.

<?php
error_reporting(0);

// Función para escribir la cabecera del html. Para la opción de guardar el XML, esta función no es necesaria
function writeHeader(){
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Database To XML</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>';
}

// Comprobar si los botones del formulario se han presionado.
if (isset($_POST['saveBtn']) || isset($_POST['dispBtn'])){

// Establecer los valores por defecto y variables en los campos de entrada para el usuario, password etc ...
$host = isset($_POST['hostname'])? $_POST['hostname'] : 'localhost';
$user = isset($_POST['username'])? $_POST['username'] : '';
$pass = isset($_POST['password'])? $_POST['password'] : '';
$port = isset($_POST['port']) ? $_POST['port'] : '3306';
$out = '';
$outfile= '';

$fullhost = $host.":".$port;

// Generar la conexión a MySQL.
$link = mysql_connect($fullhost,$user,$pass);

// Verificar que la conexión a la base de datos sea correcta.
if (!$link){
echo '<div id="main"><div id="formheader">Can not connect to database: '.mysql_error().' </div></div>';
die;
}

// Obtener todas las bases de datos del usuario.
$dbs = mysql_query('SHOW DATABASES');
$outfile.='<MySQLserver hostname="'.$host.'" username="'.$user.'" password="'.$pass.'" port="'.$port.'">'."\n";
$out .= htmlspecialchars('<MySQLserver hostname="'.$host.'" username="'.$user.'" password="'.$pass.'" port="'.$port.'">'."\n");

while ($dbrow = mysql_fetch_array($dbs, MYSQL_NUM)) {
$db = $dbrow[0];
mysql_selectdb($db,$link);
$result = mysql_query('SHOW TABLES');
$outfile.=" <Database name='$db'>\n";
$out.="&nbsp;&nbsp;&nbsp;";
$out.=htmlspecialchars("<Database name='$db'>\n");

// Recuperar todas las tablas de la base de datos.
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$table = $row[0] ;
$struct = mysql_query('DESCRIBE '.$table);
$outfile.=' <Table name="'.$table.'">'."\n";
$out.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$out.= htmlspecialchars('<Table name="'.$table.'">'."\n");

// Recuperar todos los campos de la tabla.
while ($row2 = mysql_fetch_array($struct, MYSQL_NUM)) {
$autoi = (strstr($row2[5],'auto_increment')) ? 'YES' : 'NO';
$tmp =' <Field name="'.$row2[0].'" ';
$tmp.='type="'.$row2[1].'" ';
$tmp.='null="'.$row2[2].'" ';
$tmp.='key="'.$row2[3].'" ';
$tmp.='default="'.$row2[4].'" ';
$tmp.='autoinc="'.$autoi.'"/>'."\n";
$outfile.=$tmp;
$out.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$out.=htmlspecialchars($tmp);
}

// Cerrar los tags de tabla.
$outfile.=' </Table>'."\n";
$out.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$out.=htmlspecialchars('</Table>'."\n");

}

// Cerrar los tags de base de datos.
$outfile.=" </Database>\n";
$out.="&nbsp;&nbsp;&nbsp;";
$out.=htmlspecialchars("</Database>\n");

}

// Cerrar los tags del servidor
$outfile.='</MySQLserver>';
$out.=htmlspecialchars('</MySQLserver>');

// Verificar el formato de salida y guardar el resultado.
if (isset($_POST['dispBtn'])){
writeHeader();
echo '<div id="main2"><div id="formbody2">';
echo nl2br($out) ;
echo '</div></div>';
}
else{
// Guardar el resultado como archivo XML.
$filecontent=$outfile;
$downloadfile='MySQL_Server.xml';

header("HTTP/1.1 200 OK");
header("Content-Length: ".strlen($filecontent));
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=$downloadfile");
header("Content-Transfer-Encoding: binary");

echo $filecontent;

}

}
// Desplegar el formulario.
else {
writeHeader();
?>

<div id="main">
<div id="formheader">Database connection informations</div>
<div id="formbody">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="dbXml" id="dbXml">
<table align="center">
<tr><th>Hostname:</th><td><input name="hostname" type="text" size="30" maxlength="15" value="localhost"></td></tr>
<tr><th>Username:</th><td><input name="username" type="text" size="30" maxlength="15"></td></tr>
<tr><th>Password:</th><td><input name="password" type="password" size="30" maxlength="15"></td></tr>
<tr><th>Port:</th><td><input name="port" type="text" size="30" value="3306"></td></tr>
<tr>
<td align="center"><br/><input class="text" type="submit" name="saveBtn" value="Save as..."></td>
<td align="center"><br/><input class="text" type="submit" name="dispBtn" value="Display output"></td>
</tr>
</table>
</form>

</div>
</div>
</body>
<?php
}
?>

 

Requerimientos de instalación y uso.

Requiere: PHP y MySQL

Videos tutoriales.

No hay mas capturas.

Cambios, actualizaciones y mejoras del programa.

Buscar programas


Introduce los términos de búsqueda ...

Enlaces patrocinados.


Detalles y descargar

Web:
http://www.phptoys.com
Licencia:
Gratis
Versión:
1.0
Idioma:
Inglés
Programa actualizado:
27 DIC 2010
Descargar


Si te ha gustado esta página, programa o artículo puedes votar haciendo clic en este botón: