繁体   English   中英

PHP和MySQL-如何使用mysqldump备份数据库并将其发送到使用PHP的电子邮件地址的逻辑是什么?

[英]PHP & MySQL - What is the logic on how to use mysqldump to backup your database and send it to an email address using PHP?

我想知道如何使用mysqldump备份数据库并将数据使用PHP发送到电子邮件地址吗?

这需要phpmailer

<?php

   require("class.phpmailer.php");

   header("Content-type: text/plain");

   // --- MySQL et path --------------------------------------------------------
   $mysql_host     = 'XXXXXXX';
   $mysql_username = 'XXXXXXX';
   $mysql_password = 'XXXXXXX';
   $mysql_db       = 'XXXXXXX';
   $mail_to1        = 'XXXXXXXXXXXXXXXXXXXX';
   $mail_to1_name   = 'XXXXXXXXX';
   $mail_to2        = 'XXXXXXXXXXXXXXXXXXXX';
   $mail_to2_name   = 'XXXXXXXXX';
   // --------------------------------------------------------------------------


   $fname = '' . $mysql_db . '_' . strftime('%Y%m%d-%H%M%S') . '.sql.gz';
   echo "Backing up to $fname\n";
   system('mysqldump --host=' . $mysql_host . ' --user=' . $mysql_username . 
        ' --password=' . $mysql_password . ' ' . $mysql_db . ' | gzip >' . 
        $fname);

   $mail = new PHPMailer();
   $mail->SetLanguage("en", "language/");
   $mail->From = 'XXXXXXXXXXXXXXXXXXXXXX';
   $mail->FromName = 'Webmaster';
   $mail->AddAddress($mail_to1, $mail_to1_name);
   $mail->AddAddress($mail_to2, $mail_to2_name);
   $mail->WordWrap = 50;         // set word wrap to 50 characters
   $mail->IsHTML(false);         // set email format to plain text
   $mail->Subject = '[XXX] Backup MySQL - ' . strftime('%x %X');
   $mail->Body    = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

   if (!$mail->AddAttachment($fname)) // add attachments
   {
      echo 'Erreur : ' . $mail->ErrorInfo . "\n";
      $mail->Body .= "\n" . 'Erreur : ' . $mail->ErrorInfo;
   }

   if (!$mail->Send())
   {
      echo 'Message could not be sent. <p>';
      echo 'Mailer Error: ' . $mail->ErrorInfo;
      exit;
   }

   echo 'Message has been sent';
   unlink($fname);
   exit;

?>

在某些BDD上使用(主机仅提供一些php脚本作业,无cron),并且邮件被发送到gmail。 您可以在gzip中添加-9或使用bzip获得更好的压缩效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM