gpt4 book ai didi

php - 如何在 PHP 中将 MySQL 数据库备份到文件?

转载 作者:行者123 更新时间:2023-11-29 12:26:33 24 4
gpt4 key购买 nike

我希望将整个 MySQL 数据库从 PHP 备份到 SQL 文件。

这可能吗?我找了好久了,没有找到任何东西。

谢谢。

最佳答案

使用 mysql dump 之外的其他选项

下面是经过测试的 php 代码,用于在 .sql 文件中备份数据库

<?php
ini_set("max_execution_time", 0);

$dir = "";//set path of folder where to save file
if(!(file_exists($dir))) {
mkdir($dir, 0777);
}

$host = ""; //host name
$username = ""; //username
$password = ""; // your password
$dbname = ""; // database name

backup_tables($host, $username, $password, $dbname);

function backup_tables($host,$user,$pass,$name,$tables = '*')
{
$con = mysql_connect($host,$user,$pass);
mysql_select_db($name,$con);

//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}
$return = "";

//cycle through
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);
//$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n".$row2[1].";\n";

while($row = mysql_fetch_row($result))
{
$return.="\n";
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = preg_replace("#n#","n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");";
}
$return.="\n";
}


date_default_timezone_set('Asia/Kolkata');
//save file
$way=$dir.'backup-'.date('Y-m-d H:i:s').'.sql';
$handle = fopen($way,'w+');
fwrite($handle,$return);
fclose($handle);
echo $way;
}

?>

上面的代码将在您在代码中设置的位置创建一个 .sql 文件。要时常备份数据,例如每天您必须在每天之后点击此 php 文件来执行此操作:

Linux

使用cronjobs

Windows

使用Windows task Scheduler

祝你好运

关于php - 如何在 PHP 中将 MySQL 数据库备份到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28222771/

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