L'ideale sarebbe usare il tool mysqldump da linea di comando, ma se non hai accesso alla shell probabilmente devi usare per forza PHP.
Considera però che nel php.ini hai una direttiva memory_limit che può darti problemi se il database supera certe dimensioni.
Una soluzione in questo caso può essere quella di fare il backup un pezzo alla volta, in più riprese.