Comandos MySQL (não declarações SQL) do PHP
-
26-09-2019 - |
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
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.