"; // ----------------------------------------------------- // Ouverture du fichier en écriture // ----------------------------------------------------- $fichierDump = fopen($repD, "wb"); if (!$fichierDump) { die("Erreur : Impossible d'ouvrir le fichier pour écriture. "); } $entete = "-- -----------------------------\n-- Export de la base $bdd1 au $today\n-- ----------------------------- \n"; fwrite($fichierDump, $entete); // spinner vivant ob_flush(); flush(); // export $n = 0; // Initialisation du compteur de tables exportées foreach ($tablesListe as $nomTable) { if (isset($debug[1]) && $debug[1] == '1' ) $mesg .= " | " .$nomTable; // Sauvegarde de la structure fwrite($fichierDump, "-- Structure de la table `$nomTable`\n"); fwrite($fichierDump, "DROP TABLE IF EXISTS `$nomTable`;\n"); // Exécuter la requête SHOW CREATE TABLE via PDO $stmt = $idPdo->prepare("SHOW CREATE TABLE $nomTable"); $stmt->execute(); $creationTable = $stmt->fetch(PDO::FETCH_ASSOC); if ($creationTable) { fwrite($fichierDump, $creationTable['Create Table'] . ";\n\n"); } // Sauvegarde des données $stmt = $idPdo->prepare("SELECT * FROM $nomTable"); $stmt->execute(); $donnees = $stmt->fetchAll(PDO::FETCH_ASSOC); fwrite($fichierDump, "-- Données de la table `$nomTable`\n"); foreach ($donnees as $mysqlValue) { $valeurs = []; foreach ($mysqlValue as $valeur) { if (is_null($valeur)) { $valeurs[] = "NULL"; } else { $valeurs[] = "" . $idPdo->quote($valeur) . ""; // Utilisation de PDO::quote pour échapper les valeurs } } fwrite($fichierDump, "INSERT INTO `$nomTable` VALUES (" . implode(", ", $valeurs) . ");\n"); } fwrite($fichierDump, "\n"); $n++; // Incrémenter le nombre de tables exportées } fclose($fichierDump); $endTime = microtime(true); // Fin du timer $elapsedTime = round($endTime - $startTime, 2); // Temps écoulé en secondes $fileSize = round(filesize($repD) / 1024 / 1024, 2); // Taille en Mo // Affichage des statistiques en commentaire à la fin du fichier $stats1 = " -- ----------------------------- -- RÉSUMÉ DE L'EXPORT -- ----------------------------- -- Nombre de tables exportées : $n -- Temps écoulé : $elapsedTime secondes -- Taille du fichier dump : $fileSize Mo -- ----------------------------- "; file_put_contents($repD, $stats1, FILE_APPEND); // Affichage des statistiques à l'écran $stats = "Nombre de tables exportées : $n
Temps écoulé : $elapsedTime secondes
Taille du fichier dump : $fileSize Mo
-------------------------------
"; // ----------------------------------------------------- // Message a l'écran // ----------------------------------------------------- if (isset($debug[1]) && $debug[1] == '1' ) { $mesg .= 'Export ' .$export_tag. ' réalisé avec succès. '; $mesg .= '
Les données sont dans le fichier : ' .$repD. '
Editer le fichier

' .$entete. '
' .$stats; } return $mesg; } ?>