2008-11-07 102 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