c'est pour faire des sauvegarde régulière je pense

si tu c'est ce que c'est et si tu as accés aux crontabs sur ton serveur utilise plutot ça :
Code
0 0 * * * mysqldump -uLOGIN -pPASSWORD --opt DATABASE | gzip > /home/path/DATABASE.sql.gz
en remplacant LOGIN par login, PASSWORD par le mot de passe et DATABASE par le nom de la base de donnée
si t'y as pas acces, ou si tu ne comprend pas un traite mot de cette ligne, laisse tomber, et passe par php en effet

avec php, tu peut (si la fonction n'est pas bloqué) utiliser cette ligne !
exec('mysqldump -uLOGIN -pPASSWORD --opt DATABASE | gzip > /home/path/DATABASE.sql.gz');
si exec ne marche pas essaye aussi system()
générallement ces fonctions sont desactivés pour raison de sécurité
dans ce cas, il te faudras sauvegarder tout a coup de requette et d'enregistrement dans un fichier, comme tu souhaitait le faire.
les fonctions mysql_db_name() mysql_list_dbs() mysql_list_tables() mysql_list_fields() devrait t'etre trés utilse