Pergunta

É possível, de dentro de um script PHP, executar os mesmos comandos que você pode com o cliente MySQL?

Eu sei que eu poderia teoricamente chamar de 'sistema' para invocar o cliente MySQL instalado no sistema, mas não tenho certeza de como evitar a interatividade (não quero um REPL/shell, só quero demitir um comando). Existe uma maneira de executar comandos através do cliente MySQL sem entrar no shell? Em ambos os casos, essa abordagem parece um pouco superficial.

Para esclarecer, quando digo comando, estou me referindo ao seguinte: http://dev.mysql.com/doc/refman/5.0/en/mysql-commands.html

Foi útil?

Solução

while ($obj = mysql_fetch_object($res)) {
        $file = $path.$obj->base.".sql";
        $cmd = "rm -f ".$file;
        exec($cmd);
        $cmd = "nice -19 mysqldump -h".$host." -u".$login." -p".$pass." ".$obj->base." > ".$file;
        exec($cmd);
        $sql = "update save_mysql set last_daily=NOW() where base = '".$obj->base."'";
        mysql_query($sql);
}

Você está procurando algo parecido com isto.

Usando a função EXEC, você pode chamar o comando mysql '

Outras dicas

Parece hacky. Há Espero Para lidar com a "interatividade da programação", ou seja, uma maneira de esperar o aviso para dizer coisas específicas. Eu não acho que o EXEC funcionará, a menos que você possa passar com switches específicos e executar o MySQL em um modo não interativo. Dependendo do que você está tentando fazer, eu diria melhor tentar descobrir um comando SQL que você pode enviar através das libs clientes regulares.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top