ДомБаза данныхMySQLРезервное копирование / восстановление базы данных MySql с использованием PHP
MySQL – это система управления реляционными базами данных с открытым исходным кодом (RDBMS). MySQL является центральным компонентом программного пакета веб-приложений с открытым исходным кодом LAMP. LAMP – это сокращение от «Linux, Apache, MySQL, Perl / PHP / Python».
В текущем сценарии базы данных составляют основную основу в разработке программного обеспечения. Нам необходимо регулярно выполнять резервное копирование баз данных для восстановления в случае любого сбоя. Резервное копирование базы данных вручную может быть трудоемкой и напряженной задачей.
В этом посте мы будем легко выполнять резервное копирование и восстановление базы данных с помощью PHP. Основная идея состоит в том, чтобы сохранить структуру таблицы данных и данные в файл SQL для резервного копирования. При восстановлении выгруженные в файл SQL-запросы выполняются один за другим.
Исходный код PHP для резервного копирования базы данных
<?php
$connection = mysqli_connect('localhost','user','pass','quiz');
$tables = array();
$result = mysqli_query($connection,"SHOW TABLES");
while($row = mysqli_fetch_row($result)){
$tables[] = $row[0];
}
$return = '';
foreach($tables as $table){
$result = mysqli_query($connection,"SELECT * FROM ".$table);
$num_fields = mysqli_num_fields($result);
$return .= 'DROP TABLE '.$table.';';
$row2 = mysqli_fetch_row(mysqli_query($connection,"SHOW CREATE TABLE ".$table));
$return .= "nn".$row2[1].";nn";
for($i=0;$i<$num_fields;$i++){
while($row = mysqli_fetch_row($result)){
$return .= "INSERT INTO ".$table." VALUES(";
for($j=0;$j<$num_fields;$j++){
$row[$j] = addslashes($row[$j]);
if(isset($row[$j])){ $return .= '"'.$row[$j].'"';}
else{ $return .= '""';}
if($j<$num_fields-1){ $return .= ',';}
}
$return .= ");n";
}
}
$return .= "nnn";
}
//save file
$handle = fopen("backup.sql","w+");
fwrite($handle,$return);
fclose($handle);
echo "Successfully backed up";
?>Исходный код для восстановления базы данных
<?php
$connection = mysqli_connect('localhost','root','','test');
$filename = 'backup.sql';
$handle = fopen($filename,"r+");
$contents = fread($handle,filesize($filename));
$sql = explode(';',$contents);
foreach($sql as $query){
$result = mysqli_query($connection,$query);
if($result){
echo '<tr><td><br></td></tr>';
echo '<tr><td>'.$query.' <b>SUCCESS</b></td></tr>';
echo '<tr><td><br></td></tr>';
}
}
fclose($handle);
echo 'Successfully imported';
?>Таким образом, вы можете сделать резервную копию базы данных и восстановить ее при необходимости.
Источник записи: https://thedebuggers.com