Python的os.execvp等效于PHP

时间:2008-11-07 17:21:56

标签: php python shell command-line-interface

我已经运行了一个PHP命令行程序。我想直接从PHP连接到mysql shell。我之前在Python中使用os.execvp完成了这个但是我无法在PHP中使用同样的东西。

我尝试过以下功能:

  • 系统
  • 中继
  • EXEC
  • 了shell_exec

示例:

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

但他们似乎都在等待mysql退出并返回一些东西。我真正想要的是PHP启动mysql shell然后自行退出。任何想法?

3 个答案:

答案 0 :(得分:3)

如果您希望shell命令是交互式的,请使用:

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

这适用于大多数情况,但如果您不在终端,则会中断。

答案 1 :(得分:0)

给MySQL一个脚本来运行与PHP脚本分开的脚本:

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

答案 2 :(得分:0)

除了acrosman所说的,你还可以使用-e开关从命令行传递SQL。

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

另外,我希望您实际上不是从PHP应用程序以root身份连接到数据库。