De Concordia, barrio Terminal xD!
Aca te dejo la solucion, vos lo usaras a tu criterio, espero que te sirva.
Las variables las pasaras por post o get como quieras.
Ahora para que pruebes solo por get pasas una accion, si no pones ningun get realiza el backup ( espero que se entienda ).
Código PHP:
Ver original<?php
/**
* SCRIPT: Back-UP MySql.
* Por SirDuque de Foros del Web
* Version : 1.0.1
* SO: Windows.
* */
$bat = "C:/script.bat"; //Donde guardamos el BAT?
$ejecutables = "C:/"; //Donde esta ubicado el ejecutable dumpmysql.exe y mysql.exe
$accion = isset($_GET['accion'])?
"restaura":"backup"; // Alternativas restaura|backup $host = 'localhost'; // host
$user = 'root'; // usuario
$pass = ''; // contraseña
$db = "db1"; // base de datos a realizar el back-up
$destinoBU = "C:/backUp"; // BU = Back-Up // Destino donde se guardara el archivo.
$nombreBU = !isset($_GET['archivo'])?
"backUp-".date("d-m_H-i").".sql":$_GET['archivo']; // Nombre del archivo $password =($pass != '')?" -p".$pass." $db":$db; // modifica la funcion si el usuario lleva password en blanco.
$Comando = "$bat $ejecutables $accion $host $user $password $destinoBU/$nombreBU ";
die("<samp><b>FATAL error:</b> no se puede acceder al destino.<br> Verificar permisos de escritura</samp>"); }
$resultado = exec($Comando);
if(!$resultado){
echo "<samp>Se produjo un error al realizar el Back-Up: ".$nombreBU."</samp><br>\r\n";
}else{
echo "<h1>Exito! estamos salvaguardados!</h1>Archivo $nombreBU\r\n";
}
?>
Aca tenes el .BAT
Código C++:
Ver original@echo off
cd "%1"
IF "%~2"=="backup" mysqldump.exe -h%3 -u%4 %5 > %6
IF "%~2"=="restaura" mysql.exe -h%3 -u%4 %5 < %6
pause
Si llamas el archivo de esta manera:
http://localhost/archivo.php
Realizas el backup
si lo llamas de esta menera
http://localhost/archivo.php?archivo=NombreArchivo.sql
Restauras la base de datos.
Lo provee en Windows 7.
Yo uso wamp
mysql.exe y mysqldump.exe estan en c:/wamp/bin/mysql/mysql5.5.20/bin/
Pero los copie y los pege en C:/ y funcionan de 10 xD!.
Espero que te sirva XD! saludos!