БЭКАП БАЗЫ ДАННЫХ ЧЕРЕЗ 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 базы данных