我不确定这是一个 SO 还是 SF 问题,但我认为这可能是最好的地方。如果不是,我道歉!
我正在通过 PHP exec 使用 mysqldump,但它似乎不起作用。我使用的代码是
<?php
exec('mysqldump -u DB_USER -pDB_PASS DB_NAME > /tmp/test.sql');
?>
Run Code Online (Sandbox Code Playgroud)
当我运行这个脚本时,我在 error_log 上没有收到任何错误,但我没有在 /tmp 中得到转储。我不确定是什么原因造成的。我不确定它是否试图转储到 /tmp 相对于执行 PHP 文件的位置,这是我正在寻找的结果,还是转储到其他地方的 /tmp?还是我完全犯了另一个错误?
小智 10
我找到的解决方案是在子 shell 中运行命令,然后输出stderr
到stdout
. 这样,$output
人口稠密。
IE :
exec("(mysqldump -u$username -p$password $database $tables > $dump_name) 2>&1", $output, $result);
var_dump($result);
echo "<br />";
var_dump($output);
echo "<br />";
Run Code Online (Sandbox Code Playgroud)
输出 :
整数(6)
array(1) { [0]=> string(46) "mysqldump: 找不到表:"table_name"" }
希望能帮助到你 !
归档时间: |
|
查看次数: |
6674 次 |
最近记录: |