Tengo este script para respaldar una bd, tendrá deficiencias pero me sirve:
   Código PHP:
    <?php
   //aqui falta configurar la conexion a la bd
   $con_base=mysql_connect("servidor","usuario","password");
 
   $tablas=mysql_query("show tables from base;",$con_base);
   $texto ="create database if not exists base;\n";
   $texto.="use base;\n";
   while($tabla=mysql_fetch_array($tablas))
   {
      $mitabla=$tabla[0];
      $texto.="drop table if exists base.".$mitabla.";\n";
      $creates=mysql_query("show create table base.$mitabla;",$con_base);
      while($create=mysql_fetch_array($creates))
      {
         $texto.=$create[1].";\n";
         $datos=mysql_query("select * from base.$mitabla;",$con_base);
         $campos=mysql_num_fields($datos);
         $regs=mysql_num_rows($datos);
         for($i=0;$i<$regs;$i++)
         {
            $inserta="insert into base.$mitabla(";
            for($j=0;$j<$campos;$j++)
            {
               $nombre=mysql_field_name($datos,$j);
               $inserta.="$nombre,";
            }
            $inserta=substr($inserta,0,strlen($inserta)-1).") values(";
            for($j=0;$j<$campos;$j++)
            {
               $tipo=mysql_field_type($datos,$j);
               $valor=mysql_result($datos,$i,$j);
               switch($tipo)
               {
                  case "string":
                  case "date":
                  case "time":
                     $valor="'$valor'";
                     break;
               }
               $inserta.="$valor,";
            }
            $inserta=substr($inserta,0,strlen($inserta)-1).");";
            $texto.=$inserta."\n";
         }
      }
      $texto.="\n";
   }
   $archivo= "base-".date("d-n-Y").".txt";
   header("Content-disposition: attachment;filename=$archivo");
   header("Content-Type: text/plain");
   echo $texto;
?>    
  Si no se entiende lo explico.