Con esta función Php realizaremos una copia de seguridad automática de todas las bases de datos de nuestro phpMyAdmin, este ejemplo está basado en XAMPP, pero se puede adaptar otros sistemas cambiando la ruta del ejecutable mysqldump.

En este caso no hay lugar al error, ya que utilizamos el propio exportador de phpMyAdmin, que nos proporcionara copias de seguridad idénticas a las que nos proporcionaría phpMyAdmin si lo hiciéramos a mano, el script exportara cada base de datos en un archivo separado.

La función está conformada con el objeto PDO para recorrer todas las bases de datos y la función exec() para ejecutar comandos de consola desde Php.

function phpmyadmin_backup(){

    $path_mysqldump = 'c:\xampp\mysql\bin\mysqldump';
    $host = '127.0.0.1';
    $port = '3306';
    $user = 'root';
    $password = ''; 

	$pdo = new PDO("mysql:host=$host;port=$port", $user, $password);
	 
	$stmt = $pdo->query('SHOW DATABASES');
	 
	$databases = $stmt->fetchAll(PDO::FETCH_COLUMN);
	 
	foreach($databases as $database){

		$command = $path_mysqldump.' --opt -u '.$user.' -p'.$password.' '.$database.' > '.$database.'.sql';

		exec($command);

	}

}

Si te ha sido de utilidad ¡deja un comentario! 🙂