我有四个数据库,我试图在php中使用exec备份(mysqldump ...) 我使用以下代码,
$command = 'mysqldump --single-transaction --comments --dump-date --host='.$host[$db].' --user='.$dbuser[$db].' --password='.$dbpass[$db].' '.$dbname[$db].' | zip > '.$filepath;
exec($command, $_messages, $result);
if($result)
{
echo '<p class="success">Backup for database '.$dbname[$db].' complete. Located at: '.$filepath.'';
}
else
{
echo'备份数据库'。$ dbname [$ db]。'失败
'; }
$ host,$ dbname等是我用来连接数据库进行正常访问的相同变量,所以我知道它们是有效的。我的印象是exec()函数的第三个参数如果成功则为 True ,否则为 False 。转储通过使用$ db变量循环,因此发出的命令格式相同,但显然每个数据库的详细信息不同。结果如下,
所以我开始认为$ result的正确解释是成功的。
如果数据库在循环中处理或单独处理,则没有区别。通过phpMyAdmin生成转储没有问题,数据库转储与phpMyAdmin转储相关。
我正在使用cPanel运行php 5.4和MySQL 5.6.30的共享托管平台。
有人对可能发生的事情有任何想法吗?
非常感谢。