Well you can try to run with exec commands if your host allows. Heres a couple of ways.
ob_start();
passthru('mysqldump -u [user] -p[password] dbname');
$out = ob_get_clean();
$fp = fopen('dump.sql','w');
fwrite($fp,$out);
This should work if safe mode is not set:
exec('mysqldump -u [user] -p[password] dbname> dump.sql');
If those fail, you're almost out of luck. Try with full path to mysqldump also eg. /usr/bin/mysqldump
If you dont succeed, you just have to ask your host to make the dump for you.