Autor Tema: [Descarga] SaveSQL v0.2  (Leído 781 veces)

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
[Descarga] SaveSQL v0.2
« en: 29 de Abril de 2010, 21:12:20 pm »
Bueno hoy viendo el post de siquillote, he decidido crear un backup.

Versión v0.2

Características:
- Comprimir a ZIP.
- Sacar directamente en archivo en SQL.
- Mostrar en la misma pantalla.
- Crear instalador

Instalación: (Creamos el savesql.php o otro nombre finalizando en .php )
Editamos las lineas 2,3,4,5.

Esto exactamente

$host = "localhost"; // Tu hosting para MySQL
$user = "root"; // Tu usuario de MySQL
$pass = ""; // Tu password de MySQL

Código: [Seleccionar]
<?php
$host 
"localhost";
$user "root";
$pass "";
if (
$_POST)
{
$bd $_POST[&#39;db&#39;];
$compresion $_POST[&#39;compresion&#39;];
mysql_connect($host,$user,$pass);
mysql_select_db($bd);
$qry_filas mysql_query("SHOW TABLES FROM ".$bd); 
while ($fila mysql_fetch_array($qry_filasMYSQL_NUM))
{
$tablas[] = $fila[0]; 
}
ob_start();
print_r($tablas); 
$representacion ob_get_contents(); 
ob_end_clean();
preg_match_all(&#39;/(\[\d+\] => .*)\n/&#39;, $representacion, $matches); 
$save_tablas implode(";  "$matches[1]);
if (
$_POST[&#39;compresion&#39;] == "ePHP")
{
$dump "<?php";
}
if (
$_POST[&#39;compresion&#39;] == "ePHP")
{
$dump .= "//  SaveSQL v0.2 - PHP Install Generator
// Copyright 2010 by JaviPilo for PHPeros
// Generated install of &#39;"
.$bd."&#39;
mysql_connect(&#39;"
.$host."&#39;,&#39;".$user."&#39;,&#39;".$pass."&#39;);
mysql_select_db(&#39;"
.$bd."&#39;);
"
;
} else {
$dump ="-- SaveSQL v0.2
-- http://ww.phperos.net/
--
-- Servidor: "
.$_SERVER[&#39;HTTP_HOST&#39;]."
-- Tiempo de generación".date("d-m-Y")." a las ".date("H:i:s")."
-- Versión del servidor".mysql_get_server_info()."
-- Versión de PHP".phpversion()."

--
-- 
Base de datos: `".$bd."`
--

-- --------------------------------------------------------
";
}
foreach (
$tablas as $tabla) { 
$create_table = "";
$respuesta = mysql_query("SHOW CREATE TABLE ".$tabla); 
while (
$fila = mysql_fetch_array($respuesta, MYSQL_NUM)) { 
$create_table .= $fila[1].";"; 
}
$insert = "";
$inserts = mysql_query("SELECT FROM ".$tabla);
while (
$fila = mysql_fetch_array($inserts, MYSQL_ASSOC))
{
$columnas = array_keys($fila); 
foreach (
$columnas as $columna) { 
if ( gettype(
$fila[$columna]) == "NULL" ) { 
$values[] = "NULL"; 
} else { 
                    
$values[] = "&#39;".mysql_real_escape_string($fila[$columna])."&#39;"; 
                

            } 
            
$insert .= "INSERT INTO `$tabla` VALUES (".implode(", "$values).");\n"
            unset(
$values); 
    }
if (
$_POST[&#39;compresion&#39;] == "ePHP")
{
if ($create_table)
{
$dump .=&#39;
mysql_query("&#39;.$create_table.&#39;");
&
#39;;
}
if ($insert)
{
$dump .=&#39;
mysql_query("&#39;.$insert.&#39;");
&
#39;;
}
} else {
if ($create_table)
{
$dump .="

--
-- Estructura de tabla para la tabla `"
.$tabla."`
--

"
.$create_table."

"
;
}
if ($insert)
{
$dump .= "
--
-- Volcar la base de datos para la tabla `"
.$tabla."`
--

"
.$insert."

-- --------------------------------------------------------
"
;
}
}
}
if (
$_POST[&#39;compresion&#39;] == "ePHP")
{
$dump .= "
?>
";
}
if ($_POST['compresion'] == "ePHP")
{
$nombre = "instalador_".$bd.".php";
} else {
$nombre = "Backup_".$bd."_".date("d_m_Y_H_i_s").".sql";
}
if ( !headers_sent() ) {
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
switch ($compresion) {
case "zip":
header("Content-Disposition: attachment; filename=".$nombre.".zip");
header("Content-type: application/x-zip");
echo gzencode($dump, 9);
break;
case "PHP":
echo $dump;
break;
case "ePHP":
header("Content-Disposition: attachment; filename=".$nombre);
header("Content-type: application/force-download");
echo $dump;
break;
default:
header("Content-Disposition: attachment; filename=".$nombre);
header("Content-type: application/force-download");
echo $dump;
}
}
} else {

print("<form method='POST'>
<input type='text' name='db'><br>
<select size='1' name='compresion'>
<option selected value='zip'>Comprimir en ZIP</option>
<option value='sql'>Guardar en formato SQL</option>
<option value='PHP'>Mostrar aquí en el PHP</option>
<option value='ePHP'>Crear instalador</option>
</select>
<input type='submit' value='Generar'>
</form>");
print("<p><b><font size='2' face='verdana'>Copyright 2010 by JaviPilo para PHPNacion</font></b></p>");

}
?>
« Última modificación: 29 de Abril de 2010, 21:40:44 pm por javipilo »

Comunidad PHPeros

[Descarga] SaveSQL v0.2
« en: 29 de Abril de 2010, 21:12:20 pm »

Desconectado Edwin

  • PHPero Avanzado
  • ****
  • Mensajes: 404
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] SaveSQL v0.1
« Respuesta #1 en: 29 de Abril de 2010, 21:39:38 pm »
Esta bueno tu 'SaveSQL', posiblemente me pueda servir en algo... 1+ por tu trabajo  :star:

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] SaveSQL v0.2
« Respuesta #2 en: 29 de Abril de 2010, 21:41:29 pm »
Si por ejemplo en miarrobo o webcindario!!

Saludos... ya he actualizado d enuevo ya que al hacer el instalador no creaba la conexión a mysql.

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] SaveSQL v0.2
« Respuesta #3 en: 29 de Abril de 2010, 22:44:53 pm »
Javipilo, lo he estado probando y está mal. Dada la opción que elija, siempre sale un error distinto. (He de recordar que ya he puesto
los datos de mi base de datos y se que el host se pone el pagina del codigo)

- Cuando escojo la opcion en Convertir en ZIP
El archivo tiene un formato desconocido o está dañado (Creo que es por que
se baja en la extensión .sql.zip)
- Guardar el formato SQL
Lo abro con el bloc de notas y sale toda la informacion del servidor y tal que
se a generado a tal hora ect pero luego me pone : PHP error....
error en mihostin/pruebas line X : Invalid argument supplied for foreach() in
- Escojo la opcion mostrar en PHP aqui
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a4901636/public_html/pruebas.php on line 19
Warning: Invalid argument supplied for foreach() in /home/a4901636/public_html/pruebas.php on line 56

PD : ¡ya esta solucionado, simplemente una s que se me habia olvidao! :-[ Perdona. Muchisimas gracias Javier te llevas po mi parte
5 k+ :).

PD 2 : Se han arreglao todos los problemas menos el ZIP, me sigue diciendo formato invalio
« Última modificación: 29 de Abril de 2010, 22:48:59 pm por Siquillote »

#Fdo. Physlet

Desconectado x.zurox.x

  • PHPero Avanzado
  • ****
  • Mensajes: 276
  • Karma: 11
  • Sexo: Masculino
  • Aprendiendo Php :)
    • Ver Perfil
    • TecnoVagos Tu Foro
Re:[Descarga] SaveSQL v0.2
« Respuesta #4 en: 29 de Abril de 2010, 23:29:33 pm »
Gran aporte Javi :D
me sirve de mucho :D
Un karma para ti :D
te pasaste loco :D
Si tienes un problema dificil de arreglar, comienza por hablar con la verdad ♫

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] SaveSQL v0.2
« Respuesta #5 en: 30 de Abril de 2010, 00:18:57 am »
es porque en realidad lo guarda en gzip!! xD

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] SaveSQL v0.2
« Respuesta #6 en: 30 de Abril de 2010, 11:23:33 am »

¿No hay forma de guardarlo en Zip o Rar?. Esque justamente estoy buscando esto desde hace unos dias, pero vamos, que si no
se puede comprimir en Zip o RAR, me bastará con verlo en formato Sql y lo comprimo yo mismo.

#Fdo. Physlet

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:[Descarga] SaveSQL v0.2
« Respuesta #7 en: 30 de Abril de 2010, 12:42:50 pm »
me gusto el script  :) karma +

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] SaveSQL v0.2
« Respuesta #8 en: 30 de Abril de 2010, 13:15:04 pm »

He leido que los archivos comprimidos en Gzip son los que usan casi todos los servidores y que hay un forma muy facil de descomprimir pero..
¿Cual?

#Fdo. Physlet

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:[Descarga] SaveSQL v0.2
« Respuesta #9 en: 30 de Abril de 2010, 14:01:33 pm »
¿No hay forma de guardarlo en Zip o Rar?. Esque justamente estoy buscando esto desde hace unos dias, pero vamos, que si no
se puede comprimir en Zip o RAR, me bastará con verlo en formato Sql y lo comprimo yo mismo.
La solucion es guardar el archivo en un sitio temporal y luego eliminarlo. Para crear los archivos ZIP la siguiente clase te puede ser de mucha utilidad: http://es2.php.net/zip