求助关于php执行指令与跨控制器使用方法的问题
发布于:2022-01-17 09:50:54
#1 cystone
求助
1、$mysqlstr = "mysqldump -uroot -h127.0.0.1 -p111 --opt -B db_app1 > ./bak/".$_POST['b_name'];
echo shell_exec($mysqlstr)."
";
命令执行后,bak目录下生成的文件是空文件。数据库没有备份
2、
controller1.php中
class controller1 extends spController{
function action1(){}
}
controller2.php中
class controller2 extends spController{
function action2(){}
}
现在我想要在action2中使用 controller1的action1,应该如何做?
2010-01-29 12:17:28
#2 jake
1. 关于这些命令的事情,我不是很清楚,只能建议看看PHP关于这方面的介绍,能不能帮到楼主
http://www.php.net/manual/en/function.shell-exec.php2.
import(路径/controller1文件); // 由于controller文件一般不在自动搜索的目录,所以要通过路径引入该文件,在引入的时候,
建议善用APP_PATH这个常量!spClass("controller1")->action1(); // 执行action1
2010-01-29 12:51:59
#3 cystone
谢谢jake大哥
2 解决
1 实在搞不定,晕
2010-01-29 13:57:01
#4 cystone
1 解决了。
windows中
即使系统环境变量path中指定了mysqldump的路径,仍然要在$mysqlstr 中写绝对路径
如果路径中有空格,必须要用" "将该路径括起来,最外层用' '。
例如:$mysqlstr = 'D:\"Program Files"\MySQL-5.0.83\bin\mysql -uroot -h127.0.0.1 -p111 db_app < ./bak/'.$_POST['r_name'];
2010-01-29 14:52:40
#5 jake
Jake,假如 spClass("controller1")->action1(); // 执行action1 这个ACTION 需要带一个参数才能执行,这里 ...
wznjsy 发表于 2011-5-18 19:51 
可以用 $this->spArgs() 也可以 action1($id) 这样用参数
2011-05-18 20:58:27
#6 jake
可以用 $this->spArgs() 来获取参数,或者用action1($id)来获取。对参数赋值那就更简单 spClass("controller1")->action1(1234);或者$a=1;pClass("controller1")->action1($a);
2011-05-18 21:18:14