我有一个 PHP 命令行程序正在运行。我想直接从 PHP 连接到 mysql shell。我以前在 Python 中使用 os.execvp 做过这个,但是我不能在 PHP 中做同样的事情。
我尝试了以下功能:
- 系统
- 通路
- 执行
- shell_exec
例子:
system('mysql -u root -pxxxx db_name');
但是他们似乎都在等待mysql退出并返回一些东西。我真正想要的是让 PHP 启动 mysql shell,然后自行退出。有任何想法吗?
我有一个 PHP 命令行程序正在运行。我想直接从 PHP 连接到 mysql shell。我以前在 Python 中使用 os.execvp 做过这个,但是我不能在 PHP 中做同样的事情。
我尝试了以下功能:
例子:
system('mysql -u root -pxxxx db_name');
但是他们似乎都在等待mysql退出并返回一些东西。我真正想要的是让 PHP 启动 mysql shell,然后自行退出。有任何想法吗?
如果您希望 shell 命令是交互式的,请使用:
system("mysql -uroot -p db_name > `tty`");
这适用于大多数情况,但如果您不在终端中,则会中断。
给 MySQL 一个独立于 PHP 脚本运行的脚本:
system('mysql -u root -pxxxx db_name < script.mysql');
除了 acrosman 说的,还可以使用-e
switch 从命令行传递 SQL。
$sql = ".....";
system("mysql -u root -pxxxx db_name -e \"$sql\"");
另外,我希望您实际上没有从 PHP 应用程序以 root 身份连接到数据库。