Maison >base de données >tutoriel mysql >Comment exporter une base de données MySQL à l'aide de PHP avec un emplacement de téléchargement/enregistrement défini par l'utilisateur ?
Exporter la base de données MySQL à l'aide de PHP
Contexte
L'exportation de bases de données est cruciale pour la sauvegarde des données, à des fins de restauration et de migration. Cet article fournit une solution complète pour exporter des bases de données MySQL à l'aide de PHP.
Exportation de la base de données
Le code PHP présenté exporte de manière transparente la base de données vers un fichier nommé "backup.sql. " Cependant, l'utilisateur n'a pas le contrôle sur l'emplacement de sauvegarde et la possibilité de téléchargement. Cet article répond à ces limitations en améliorant le code.
Code PHP amélioré
Vous trouverez ci-dessous le code PHP amélioré qui permet à l'utilisateur de contrôler les options d'enregistrement et de téléchargement :
$DB_HOST = "localhost"; $DB_USER = "root"; $DB_PASS = "admin"; $DB_NAME = "dbname"; $con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); $tables = array(); $result = mysqli_query($con, "SHOW TABLES"); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } $return = ''; foreach ($tables as $table) { $result = mysqli_query($con, "SELECT * FROM " . $table); $num_fields = mysqli_num_fields($result); $return .= 'DROP TABLE ' . $table . ';'; $row2 = mysqli_fetch_row(mysqli_query($con, '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"; } // User-defined download/save location variable $download_path = isset($_GET['download_path']) ? $_GET['download_path'] : 'default_path'; // Set default path if not provided $handle = fopen($download_path . '/backup.sql', 'w+'); fwrite($handle, $return); fclose($handle); if (isset($_GET['download']) && $_GET['download'] == true) { header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"backup.sql\""); echo $return; exit; } else { echo "Success! Database exported to " . $download_path . "/backup.sql"; }
Explication du code
Le code amélioré intègre désormais les éléments suivants fonctionnalités :
Conclusion
Ce code PHP amélioré fournit une solution flexible pour l'exportation de bases de données MySQL, offrant à la fois des options de sauvegarde manuelle et de téléchargement direct. Il permet aux utilisateurs de mieux contrôler leurs besoins en matière de sauvegarde et de restauration de bases de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!