БЭКАП БАЗЫ ДАННЫХ ЧЕРЕЗ PHP

Бэкап базы данных через PHP — это процесс создания копии базы данных с целью сохранения данных в случае возникновения проблем с основной базой данных. Для создания резервной копии базы данных необходимо выполнить несколько шагов.

Первым шагом является установка соединения с базой данных. Для этого используется функция mysqli_connect():

$host = 'localhost';
$user = 'username';
$password = 'password';
$database = 'database';
$connection = mysqli_connect($host, $user, $password, $database) or die(mysqli_error());

Затем необходимо выполнить запрос на создание резервной копии. Для этого используется функция exec(). Например:

$tables = array();
$result = mysqli_query($connection, 'SHOW TABLES');
while($row = mysqli_fetch_row($result)) {
$tables[] = $row[0];
}
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 .= "\n\n".$row2[1].";\n\n";
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.="\n\n\n";
}

После этого, созданный бэкап необходимо сохранить на сервере. Для этого создается файл и в него записывается содержимое созданного бэкапа. Например:

$handle = fopen('backup.sql','w+');
fwrite($handle,$return);
fclose($handle);

Иногда в базе данных могут быть большие таблицы, которые могут занять много времени на ее создание, поэтому рекомендуется использовать флаги --opt и --single-transaction при создании резервной копии. Например:

exec('mysqldump --opt --single-transaction -h '.$host.' -u '.$user.' -p '.$password.' '.$database.' > '.$filename);

Автоматическое копирование базы данных MySql на PHP

Database Backup using PHP MYSQL

How to Use PHP for Mysql Database Backup

Часть 4. PHP. Создание соединения с базой данных

Работа с базой данных на PHP и MySQL

PHP и PhpMyAdmin - создание, вывод, изменение и удаление данных

PHP для начинающих - #14 Вывод постов из MySQL базы данных

Реклама
Новое
Реклама