If you want to work on the database at times when you have no online access, then a synchronization step will always be required once you reconnect. If the database is large, this reconnect will always take time no matter which method you use.
Running a PHP script would be much slower than using mysqldump.
There may be some benefit to writing a PHP script which detects just the CHANGED parts of the database but that sounds like real chore to me.