bonjour,
Dans ma base j'ai certain champ date ou datetime qui sont NULL par défaut.
Lors de ma sauvegarde le mots NULL est remplace par ''(2 guillemets simples) dans le fichier sql.
Si j'installe la sauvegarde les champs qui sont ne sont donc plus NULL passe à '0000-00-00' ce qui est normale mais ce qui pose des problème de fonctionnement après.
Je ne sait pas comment faire pour que ces champs date NULL le reste lors de la sauvegarde.

merci

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
if($action=="oui") {
 
   function Compacter($base) { // Permet de compacter la base avant de lancer toute la procédure 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) 
         @mysql_query("OPTIMIZE TABLE ".$enr[0]);
    }
 
   if($connexion = @mysql_connect($host,$user,$passe)) { // on effectue la connexion 
 
      Compacter($base); 
 
      $select_base=@mysql_select_db($base); // Selection de la base de données 
 
    // CREATION DU FICHIER 
      $fname = "backup_".$base.".sql"; 
      $f2 = fopen($fname,"w"); 
 
      fputs($f2,"# Sauvegarde de base de données\n"); 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) { 
         fputs($f2,"# Les tables traitées sont ".$enr[0].";\n"); 
      } 
      fputs($f2,"\n"); 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) { 
         fputs($f2,"DELETE FROM $enr[0];\n"); 
      } 
 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) { 
         $res = mysql_query("SELECT * FROM $enr[0]"); 
    // le nombre de champs de la table 
         $champs = mysql_num_fields($res);  
    // Pour chaque ligne 
         while($val=mysql_fetch_array($res)) { 
            $tmp = "INSERT INTO ".$enr[0]." VALUES("; 
            $c=0; 
    // Pour chaque champ 
            while($c < $champs) { 
               // Une virgule sauf au premier 
               if($c>0) $tmp .= ", "; 
    // Le contenu du champ 
               $tmp .= "'".AddSlashes($val[$c])."'"; 
               $c++; 
            } 
            $tmp .= ");\n"; 
    // Ecrit la ligne 
            fputs($f2,$tmp); 
         } 
      } 
      fclose($f2); 
 
 
    // ZIP DU FICHIER de la base de donnée 
    // Compresse le fichier 
		$zipfile = new zipfile(); 
		$zipfile -> addFile(implode("",file($fname)), $fname); 
    // Sauve le zip 
		$f2=fopen($fname.".zip","w"); 
		fputs($f2,$zipfile -> file()); 
		fclose($f2); 
    // NETTOYAGE  // Détruit le fichier initial mais laisse le zip au cas où... 
      unlink($fname);