equivalente os.execvp do Python para PHP
-
07-07-2019 - |
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?
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.