alpha_full/admin/maint/sav.restoreDB.php
2026-04-06 22:58:51 +02:00

67 lines
2.0 KiB
PHP
Executable File

<?php
$nomFicAppelant = basename(__FILE__);
// -----------------------------------------------------
// Récupération du fichier
$filename = $includePathVar . "/sauvegardes/" . $fileToRestor;
$handle = fopen($filename, "r");
$indexBuffer = fread($handle, filesize($filename));
fclose($handle);
// -----------------------------------------------------
// Function lire fic et --> mysql
// -----------------------------------------------------
// * @link http://www.codexworld.com
// -----------------------------------------------------
try {
// Connexion PDO à la base de données
$dsn = "mysql:host=$host;dbname=$bdd;charset=utf8";
$db = new PDO($dsn, $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Gestion des erreurs
// Variable temporaire pour stocker la requête en cours
$templine = '';
// Lecture du fichier ligne par ligne
$lines = file($filename);
$error = '';
// Variables pour suivre les lignes traitées
$z = 0;
$x = 0;
// Boucle à travers chaque ligne du fichier
foreach ($lines as $line) {
// Ignorer les commentaires et lignes vides
if (substr($line, 0, 2) == '--' || $line == '') {
continue;
}
// Ajouter cette ligne au segment en cours
$templine .= $line;
$x++;
// Si la ligne se termine par un point-virgule, c'est la fin de la requête
if (substr(trim($line), -1, 1) == ';') {
// Exécuter la requête
try {
$db->exec($templine); // Utilisation de exec() pour les requêtes sans résultat
} catch (PDOException $e) {
$error .= 'Erreur lors de l\'exécution de la requête "<b>' . $templine . '</b>": ' . $e->getMessage() . '<br /><br />';
}
// Réinitialiser la variable temporaire
$templine = '';
$z++;
}
}
// Message de statut
$admMsg .= 'Lignes traitées : ' .$z. ', sur ' .$x. ' lignes';
} catch (PDOException $e) {
// En cas d'erreur de connexion PDO
$error .= 'Erreur de connexion à la base de données : ' . $e->getMessage();
}
?>