用于在MySQL中导入文件的PHP脚本

时间:2012-08-22 11:51:24

标签: php mysql cpanel

我的postwwwacct脚本中有一些代码不起作用,它不会导入sql文件

shell_exec("cd /home/".$opts['user']."/public_html/sbans/sql/");
$command="mysql -u ".$opts['user']." -p".$opts['pass']." ".$opts['user']."_bans < data.sql";
shell_exec($command);

然而,在创建帐户后,我可以在ssh中手动运行

cd /home/jason/public_html/sbans/sql/
mysql -u jason -pmypass jason_bans < data.sql

然后有效。

postwwwacct中的php代码有什么问题?

很抱歉重新编辑您的编辑但该文件没有php扩展名 我使用

手动调用php编译器
#!/usr/local/bin/php -q

2 个答案:

答案 0 :(得分:1)

在我的脑海中,你确定文件data.sql在所有不同用户的sql文件夹中吗?你也可以创建一个单独的bash脚本并在你的脚本中调用它,这对我来说很有用,你只需传递这样的参数:

$t = shell_exec("path/command.sh '$opts['user']' '$opts['pass']' 2>&1");
echo $t

并在bash脚本中这样开始获取变量:      #!/斌/庆典

 #Get variables needed

 user=$1
 pass=$2

然后你可以继续使用变量作为任何普通的bash变量,如果你的shell_exec命令末尾的2&gt;&amp; 1仍然无法正常工作,你将能够调试它很多更容易。

祝你好运!

答案 1 :(得分:0)

问题是shell_exec执行cd并完成所以找不到用sql导入的命令并且失败。

尝试这样的事情:

<?php
$command="mysql -u ".$opts['user']." -p".$opts['pass']." ".$opts['user']."_bans < data.sql";
$output = shell_exec("cd /home/".$opts['user']."/public_html/sbans/sql/ && ".$command);

如果你想看到命令的结果,那就

echo $ output