Você pode usar o
exec()
função para executar um comando externo. Nota:entre
shell_exec()
e exec()
, eu escolheria o segundo, que não retorna a saída para o script PHP - não há necessidade de o script PHP obter todo o dump SQL como uma string:você só precisa gravar em um arquivo, e isso pode ser feito pelo próprio comando. Esse comando externo irá:
- ser uma chamada para
mysqldump
, com os parâmetros corretos, - e redirecione a saída para um arquivo.
Por exemplo :
mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql
O que significa que seu código PHP ficaria assim:
exec('mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql');
Claro, cabe a você usar as informações de conexão corretas, substituindo o
...
com eles.