lunes, 5 de octubre de 2009

Ejecutar shell MySQL ( shell_exec() )

shell_exec es una potente funcion de php permite la ejecucion de comandos shell desde php... algunas cosas que tienes que saber es que con safe_mode enable no es posible hacer uso de esta maravillosa funcion (es para que lo tengan presente); ahh otra cosa esta funcion es identico al operador backtick.

Ok Sabiendo esto el escenario el siguiente codigo seria para respaldar y restaurar:



Las variable $action aceptara valores (restore|backup) las opciones son logicas. Lo escencial es que en restore se ejecuta lo siguiente:

$cmd="mysql -u $user -p$pwd $bd < $file_script"; $output=shell_exec($cmd); Y en backup $cmd="mysqldump -u $user -p$pwd $option $bd > $file_script";

Puedes agregarle cuantas opciones creas necesarias....

PD. si les aparece un error asi:


Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in C:\wamp\www\restore\index.php on line 13
mysql -u root -proot test < data.sql

Significa que safe_mod esta habilitado. Desabilitalo en el php.ini y todo estara bien....