4

我有一个 PHP 命令行程序正在运行。我想直接从 PHP 连接到 mysql shell。我以前在 Python 中使用 os.execvp 做过这个,但是我不能在 PHP 中做同样的事情。

我尝试了以下功能:

  • 系统
  • 通路
  • 执行
  • shell_exec

例子:

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

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

4

3 回答 3

3

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

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

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

于 2008-11-07T23:28:59.973 回答
0

给 MySQL 一个独立于 PHP 脚本运行的脚本:

system('mysql -u root -pxxxx db_name < script.mysql');
于 2008-11-07T17:26:48.333 回答
0

除了 acrosman 说的,还可以使用-eswitch 从命令行传递 SQL。

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

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

于 2008-11-07T17:37:35.440 回答