2008-11-07 202 views
4

我有一个PHP命令行程序正在运行。我想直接从PHP连接到一个mysql shell。我以前在使用os.execvp的Python中完成了这项工作,但是我无法在PHP中使用相同的工具。Python的os.execvp等效于PHP

我尝试了以下功能:

  • 系统
  • 中继
  • EXEC
  • 了shell_exec

例如:

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

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

回答

3

如果你想shell命令是交互式的,使用:

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

这将在大多数情况下工作,但如果你是不是在终端将打破。

+0

辉煌!这正是我所期待的! – Mattias 2008-11-08 14:08:22

0

给MySQL的一个脚本来运行这是从PHP脚本分开:

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

除了说什么acrosman,您还可以使用-e切换到命令行通过SQL。

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

而且,我希望你不实际连接到数据库根从PHP应用程序。

+0

谢谢你的提示,但它不是我要找的东西。我想将用户从PHP cli移动到一个mysql shell中。 – Mattias 2008-11-08 14:07:28