bonsoir j'aimerai exécuter cette commande :
mais ceci s'utilise comme une basique requête ?Code:
1
2 mysqldump --user=****** --password=****** db_1 db_2 db_n> /Chemin/Vers/fichier_dump.SQL
Version imprimable
bonsoir j'aimerai exécuter cette commande :
mais ceci s'utilise comme une basique requête ?Code:
1
2 mysqldump --user=****** --password=****** db_1 db_2 db_n> /Chemin/Vers/fichier_dump.SQL
Non, ca utilise l'executable en ligne de commande mysqldump.
exec() de devrait faire ton affaire.
le faite que j'utilise PDO ça change quelque chose ?
Non, PDO ne concerne que ce que tu fais en PHP.
ah ok même si la commande est pour la base de données ce n'est pas une requête mais une commande.
merci je vais tester
j'ai testé !
aucune erreur se présente, le fichier se crée bien, mais le soucis c'est qu'il est vide !?Code:exec('mysqldump --user="'.$user.'" --password="'.$password.'" '.$db.' > dump.sql');
Petite précision je suis en localhost.
Merci
Quelques mois plus tard et je n'ai toujours pas de solutions. :calim2:
Pour faire les sauvegardes de mes bases j'utiliser une fonction :
ensuite tu appelles la fonction par un bouton dans un formulaireCode:
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
65
66
67 function dumpMySQL($serveur, $login, $password, $base, $mode) { $connexion = mysql_connect($serveur, $login, $password); mysql_select_db($base, $connexion); $t=getdate(); $date=date('Y-m-d',$t[0]); $entete = "-- ----------------------\n"; $entete .= "-- dump de la base ".$base." au ".date("d-M-Y")."\n"; $entete .= "-- ----------------------\n\n\n"; $creations = ""; $insertions = "\n\n"; $listeTables = mysql_query("show tables", $connexion); while($table = mysql_fetch_array($listeTables)) { // si l'utilisateur a demandé la structure ou la totale if($mode == 1 || $mode == 3) { $creations .= "-- -----------------------------\n"; $creations .= "-- creation de la table ".$table[0]."\n"; $creations .= "-- -----------------------------\n"; $listeCreationsTables = mysql_query("show create table ".$table[0], $connexion); while($creationTable = mysql_fetch_array($listeCreationsTables)) { $creations .= $creationTable[1].";\n\n"; } } // si l'utilisateur a demandé les données ou la totale if($mode > 1) { $donnees = mysql_query("SELECT * FROM ".$table[0]); $insertions .= "-- -----------------------------\n"; $insertions .= "-- insertions dans la table ".$table[0]."\n"; $insertions .= "-- -----------------------------\n"; while($nuplet = mysql_fetch_array($donnees)) { $insertions .= "INSERT INTO ".$table[0]." VALUES("; for($i=0; $i < mysql_num_fields($donnees); $i++) { if($i != 0) $insertions .= ", "; if(mysql_field_type($donnees, $i) == "string" or mysql_field_type($donnees, $i) == "datetime"|| mysql_field_type($donnees, $i) == "blob") $insertions .= "'"; $insertions .= addslashes($nuplet[$i]); if(mysql_field_type($donnees, $i) == "string" or mysql_field_type($donnees, $i) == "datetime" || mysql_field_type($donnees, $i) == "blob") $insertions .= "'"; } $insertions .= ");\n"; } $insertions .= "\n"; } } mysql_close($connexion); //Indiquer l'emplacement $fichierDump = fopen("../sauvegarde/$base-$date.sql", "wb"); fwrite($fichierDump, $entete); fwrite($fichierDump, $creations); fwrite($fichierDump, $insertions); fclose($fichierDump); echo "<SCRIPT LANGUAGE='JavaScript'>"; echo "alert('Sauvegarde effectée avec succès.')"; echo "</SCRIPT LANGUAGUE>"; }
Code:dumpMySQL("127.0.0.1", "root", "", "lenomdelabase", 3);
merci beaucoup je vais tester ! :ccool:
cependant pourquoi la doc mysql indique mon code si elle fonctionne pas ?!
faut dire que c'est plus court lol
EDIT : est-ce que les contraintes s'exportent aussi ?