salut, je suis en train d’écrire un script de sauvegarde quotidienne (différentielle)et hebdomadaire de ma base de données. pour le moment,je veux commencer par sauvegarder d'abord les scripts de création de table (DDL) sauf que je suis confronte a un problème qui m’empêche d'avancer. le script ne renvoi que la DDL d'une seule table alors que quand je compte le nombre de table que je possède, j'ai plus de 500 tables.comment faire pour recuperer la DDL de toutes les tables de ma base ? j'execute le script a partir d'un fichier .bat.

voici mon script PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
function dump_db($conn, $base, $mode){
    $i=1;
    $entete  = "-- ----------------------\n";
    $entete .= "-- dump de la base ".$base." au ".gmdate(DATE_RFC822) ."\n";
    $creations = "";
    $insertions = "\n\n";
    echo "debut de la sauvegarde des donnees de la base de donnees";
    $listeTables = mysqli_query($conn, "SHOW TABLES");
        //nombre de tables dans la table
    $rowcount=mysqli_num_rows($listeTables);
    $entete .="Il y a actuellement: " .$rowcount. " Tables dans la base de donnees ".$base . "\n" ;
    $entete .= "-- ----------------------\n\n\n";
while($table = mysqli_fetch_array($listeTables)) {
    // si on ne veut sauvegarder que la structure ou la totalité de la BDD.
     if($mode == 1 || $mode == 2){
            $creations .= "-- -----------------------------\n";
            $creations .= "-- " .$i. "--Structure de la table ".$table[0]."\n";
            $creations .= "-- -----------------------------\n";
            $listeCreationsTables =  mysqli_query($conn, "SHOW CREATE TABLE ".$table[0]);
          while($creationTable = mysqli_fetch_array($listeCreationsTables)){
              $creations.= $creationTable[1].";\n\n";
              $i++;
                 }
             }
    mysqli_close($conn);
    $fichierDump = fopen("backupdatabase.sql", "wb");
    fwrite($fichierDump, $entete);
    fwrite($fichierDump, $creations);
    fclose($fichierDump);
    echo "Sauvegarde terminée";
        }
    }