Não reinvente a roda. O que você precisa já existe quase pronto para uso:
<?php
$result = exec("/path/to/mysqldump -u$username -p$password your_database your_table > /desired/output/path/dump.sql");
Você pode querer verificar o conteúdo de
$result
depois, para ter certeza de que tudo correu bem. Manual de referência aqui.