Pergunta

Eu tenho um comando PHP programa de linha de execução. E eu quero conectar a uma reta shell mysql de PHP. Já fiz isso antes em Python utilizando os.execvp Mas eu não posso obter a mesma coisa para trabalhar em PHP.

Eu tentei as seguintes funções:

  • Sistema
  • intermediário
  • exec
  • shell_exec

exemplo:

system('mysql -u root -pxxxx db_name');

Mas todos eles parecem esperar por mysql para sair e voltar algo. O que eu realmente quero é que PHP para iniciar o shell mysql e depois sair dele auto. quaisquer ideias?

Foi útil?

Solução

Se você quiser comandos shell para ser interativo, use:

system("mysql -uroot -p db_name > `tty`");

Isso vai funcionar para a maioria dos casos, mas vai quebrar se você não está em um terminal.

Outras dicas

Dê MySQL um script para executar que é separado do script PHP:

system('mysql -u root -pxxxx db_name < script.mysql');

Além do que acrosman disse, você também pode usar o interruptor -e para passar SQL a partir da linha de comando.

$sql = ".....";
system("mysql -u root -pxxxx db_name -e \"$sql\"");

Além disso, eu espero que o seu não realmente conectar ao banco de dados como root a partir de uma aplicação PHP.

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