


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 ?
Nov 15, 2024 am 01:19 AMExporter 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 :
- Emplacement de téléchargement/enregistrement défini par l'utilisateur : La variable $download_path permet aux utilisateurs de spécifier l'emplacement de téléchargement via le paramètre URL download_path.
- Option de téléchargement : En ajoutant le paramètre de téléchargement à l'URL (?download=true), la base de données est directement téléchargée dans le navigateur de l'utilisateur. navigateur.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
