Genera tu sentencias SQL de INSERT y CREATE TABLE ... en un archivo de texto plano ..
Para eso, haz una consulta SQL a tu tabla(s) implicadas como lo harías de la forma habitual y vas generando línea a línea el archivo de texto plano donde generaras la sentencia SQL de INSERT (o la que corresponda) con tus datos de tus campos/registros ..
Código PHP:
// etc ...
While ($row=mysql_fetch_array($result)){
$sql_backup .="INSERT INTO ".$tabla." (campo1,campN) VALUES ('".$row['campo1']."','".$row['campoN']."')";
}
// Y lo vuelcas a un archivo de texto plano (fopen() .. fwrite() ..) .. o incluso lo entregas a descargar directamente .. (con cabeceras HTTP por header() ..)
// El caso es que en $sql_backup tienes tus sentencias SQL listas para hacer un mysql_query() y restaurar los datos nuevamente.
Si no quieres reinventar la rueda .. visita sítios como
www.phpclasses.org o
www.hotscripts.com por qué scripts/aplicacioens de estas ya están más que inventadas. Por ejemplo el famoso phpMyadmin (
www.phpMyadmin.net) .. aunque seguro que encontraras algunos más básicos si sólo requieres de la funcionalidad concreta de backup.
Un saludo,