我有这段代码:
function export()
{
$exp = system("mysqldump -uguku -pjustbe repadmin > back-up.sql");
if($exp) {echo 'ok';}
else { echo 'err';}
}
但它不起作用,它只是创建“back-up.sql”文件,但它是空白的。 我收到了“错误”的消息。
答案 0 :(得分:1)
尝试使用mysqldump的完整路径...
$exp = system("/full/path/mysqldump -uroot -p repadmin > back-up.sql");
which mysqldump
会告诉你路径应该是什么。
答案 1 :(得分:1)
这里有一个命令无法正常运行。最好的办法是捕获stderr(错误消息的位置)并查看输出结果。另外需要注意的是环境变量会有所不同 - 例如PATH(上面提到的@Joshua_Martell)。
使用此命令捕获stderr并查看正在生成的错误消息:
/usr/bin/mysqldump -uguku -pjustbe repadmin > back-up.sql 2> mysqldump.err
这也使用mysqldump
的完整路径(使用正确的路径)。您也可以添加back-up.sql
的路径,在这种情况下,添加到mysqldump.err
- 不要假设PHP将在您想要的目录中运行,因为可以改变。