PHP : Importer les données dans une base depuis un fichiers .sql

Ci-dessous un script PHP permettant d’importer dans une base les données d’un fichier « export.sql ». Cela permet de créer les tables et d’insérer les données dans la base directement en PHP sans passer par l’import du fichier via le PhpMyAdmin

Ça peut être utile par exemple dans un « installeur » de site, dans la même idée de l’article précédent qui permettait de Créer une fichier de configuration en PHP

//effectuer la connexion à la base de données
$mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
//fichier contenant le sql
$lines = 'export.sql';
//initialisation des variables
$req = "";
$finRequete = false;
//pour chaque ligne du fichier
foreach ($lines as $line) {
    //on saute les commentaires
    if (
substr($line, 0, 2) == '--' || $line == '') {
        continue;
    }
    //on ajoute la ligne à la requête
    $req .= $line;
    //Permet de repérer quand il faut envoyer l'ordre SQL...
    if (substr(trim($line), -1, 1) == ';') {
        $finRequete = true;
    }
    //si requête terminé, on l'exécute et on recommence le traitement à partir de la ligne suivante
    if ($finRequete) {
        if (!$mysqli->query($req)) {
            echo "<div class='alert alert-danger'>Erreur : " . $mysqli->error . "<br>" . $req . "</div>";
        }
        $req = "";
        $finRequete = false;
    }
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *