我已经运行了一个PHP命令行程序。我想直接从PHP连接到mysql shell。我之前在Python中使用os.execvp完成了这个但是我无法在PHP中使用同样的东西。
我尝试过以下功能:
示例:
system('mysql -u root -pxxxx db_name');
但他们似乎都在等待mysql退出并返回一些东西。我真正想要的是PHP启动mysql shell然后自行退出。任何想法?
答案 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身份连接到数据库。