gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 14:56:37 26 4
gpt4 key购买 nike

我想知道如何使用 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 以获得更好的压缩效果。

关于PHP & MySQL - 如何使用 mysqldump 备份数据库并将其发送到使用 PHP 的电子邮件地址的逻辑是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4477422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com