I want a PHP based solution to backup database (only data and not code) of a remote server and download the file. I know that Shell based solutions are better for doing such
PHPMyAdmin is a great solution in general but may be overkill if you only ever want to do backups. If you want a universal solution then absolutely don't rely on exec being available. PHP combined with the right SQL queries (as you have noted in your point 3.) can provide you with all the information you need and will always work.