ce script serait lancer deapuis une page (en PHP) du site, et le résultat serait exporter dans un fichier texte (un peu comme l'export en csv).
Merci d'avance...
Raison: passé en résolu
-
Marc MOREL
- Messages : 3
Après 15 années d’existence, le forum historique de Framasoft, ferme ses portes.
Pour les nostalgiques et les curieux, il reste toujours possible de consulter les discussions mais c’est maintenant le forum
Framacolibri qui prend la relève.
Si vous avez des questions, on se retrouve là-bas…
<?php
//réglages base
$host = "localhost"; // Serveur
$db1 = "nom_de_la_base"; // Base de données
$user = "utilisateur"; // Nom d'utilisateur de la base
$pw = "mot_de_passe"; // Mot de passe
$use_date = 1; // Utiliser la date dans le nom du fichier de sauvegarde 0 = non / 1 = oui
//répertoire des backup
$path = "../backup_mysql/";
//Connexion base de données
$conn_id = mysql_connect($host,$user,$pw) or die(mysql_error());
//réglages commentaires du fichier sql
$dump1 = "# Sauvegarde créée le ";
$dump2 = "# Base de données: ";
$dump3 = "# Nom de la table: ";
//recherche toutes les bases du serveur
$database = $db1;
$zaehler = 0;
$start=0;
// generate filesuffix if it should be used
if($use_date == 1)
{
$datum = "_".date('Y-m-d');
}
else
{
$datum = "";
}
$file_name = $path.'backup_'.$database.$datum.".sql";
$file_old = $path.$database.".old";
$aktime=date("d-m-Y H:i");
$db_name = $dump1."$aktime\n";
$db_name.= $dump2."$database \n\n";
if (file_exists($file_name)){unlink($file_name);}
$fd = fopen($file_name,"a+");
fwrite($fd, $db_name);
fclose($fd);
// Tabellenname Array auslesen und aufbauen
$tbl_array = array(); $c = 0;
$result2 = mysql_list_tables($database);
for($x=0; $x<mysql_num_rows($result2); $x++)
{
$tabelle = mysql_tablename($result2,$x);
if ($tabelle <>"") {
$tbl_array[$c] = mysql_tablename($result2,$x); $c++;$zaehler++;
}
}
flush();
// Start Ausgabe und Berechnung
for ($y = 0; $y < $c; $y++){
$tabelle=$tbl_array[$y];
// Struktur der Tabelle einlesen
$def = "";
$def .= "DROP TABLE IF EXISTS $tabelle; \n";
$def .= "CREATE TABLE $tabelle (\n";
$result3 = mysql_db_query($database, "SHOW FIELDS FROM $tabelle",$conn_id);
while($row = mysql_fetch_array($result3)) {
$def .= " $row[Field] $row[Type]";
if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'";
if ($row["Null"] != "YES") $def .= " NOT NULL";
if ($row['Extra'] != "") $def .= " $row[Extra]";
$def .= ",\n";
}
$def = ereg_replace(",\n$","", $def);
$result3 = mysql_db_query($database, "SHOW KEYS FROM $tabelle",$conn_id);
while($row = mysql_fetch_array($result3)) {
$kname=$row['Key_name'];
if(($kname != "PRIMARY") && ($row['Non_unique'] == 0)) $kname="UNIQUE|$kname";
if(!isset($index[$kname])) $index[$kname] = array();
$index[$kname][] = $row['Column_name'];
}
while(list($xy, $columns) = @each($index)) {
$def .= ",\n";
if($xy == "PRIMARY") $def .= " PRIMARY KEY (" . implode($columns, ", ") . ")";
else if (substr($xy,0,6) == "UNIQUE") $def .= " UNIQUE ".substr($xy,7)." (" . implode($columns, ", ") . ")";
else $def .= " KEY $xy (" . implode($columns, ", ") . ")";
}
$def .= "\n); \n";
// Ende Struktur Modul
$db = @mysql_select_db($database,$conn_id);
$tabelle="".$tabelle;
$ergebnis=array();
$tbl_name = $dump3."$tabelle \n\n";
$fd = fopen($file_name,"a+");
fwrite($fd, $tbl_name.$def);
fclose($fd);
unset($data);
if ($tabelle>""){
$ergebnis[]=@mysql_select_db($database,$conn_id);
$result=mysql_query("select * from $tabelle");
$anzahl= mysql_num_rows ($result);
$spaltenzahl = mysql_num_fields($result);
$data='';
for ($i=0;$i<$anzahl;$i++) {
$zeile=mysql_fetch_array($result);
$data.="insert into $tabelle (";
for ($spalte = 0; $spalte < $spaltenzahl;$spalte++) {
$feldname = mysql_field_name($result, $spalte);
if($spalte == ($spaltenzahl - 1))
{
$data.= $feldname;
}
else
{
$data.= $feldname.",";
}
};
$data.=") VALUES (";
for ($k=0;$k < $spaltenzahl;$k++){
if($k == ($spaltenzahl - 1))
{
$data.="'".addslashes($zeile[$k])."'";
}
else
{
$data.="'".addslashes($zeile[$k])."',";
}
}
$data.= ");\n";
}
$data.= "\n";
}
else
{
$ergebnis[]= "Aucune table!";
}
$zeit = (date("d_m_Y"));
$fd = fopen($file_name,"a+");
$zeit = time() - $start;
//$speed = $speed+$zeit;
for ($i3=0;$i3<count($ergebnis);$i3++){
fwrite($fd, $data);
fclose($fd);
}
}
$groesse = filesize($file_name) / 1024;
$place = $groesse; //$place+$groesse;
$out_dump="<p><label>Base de données :</label>$db1<br />";
$out_dump.="<label>Nombre de tables :</label>$zaehler<br />";
$out_dump.="<label>Taille :</label>".number_format($groesse,2)." KB</p>";
$out_dump.='<p class="confirmation">La sauvegarde a bien été effectuée. Le fichier se trouve dans le dossier « '.$path.' ».</p>';
echo $out_dump;
?>
lebendre a écrit:J'avais un jour trouvé ce script:
- Code: Tout sélectionner
<?php
//réglages base
$host = "localhost"; // Serveur
$db1 = "nom_de_la_base"; // Base de données
$user = "utilisateur"; // Nom d'utilisateur de la base
$pw = "mot_de_passe"; // Mot de passe
$use_date = 1; // Utiliser la date dans le nom du fichier de sauvegarde 0 = non / 1 = oui
//répertoire des backup
$path = "../backup_mysql/";
//Connexion base de données
$conn_id = mysql_connect($host,$user,$pw) or die(mysql_error());
//réglages commentaires du fichier sql
$dump1 = "# Sauvegarde créée le ";
$dump2 = "# Base de données: ";
$dump3 = "# Nom de la table: ";
//recherche toutes les bases du serveur
$database = $db1;
$zaehler = 0;
$start=0;
// generate filesuffix if it should be used
if($use_date == 1)
{
$datum = "_".date('Y-m-d');
}
else
{
$datum = "";
}
$file_name = $path.'backup_'.$database.$datum.".sql";
$file_old = $path.$database.".old";
$aktime=date("d-m-Y H:i");
$db_name = $dump1."$aktime\n";
$db_name.= $dump2."$database \n\n";
if (file_exists($file_name)){unlink($file_name);}
$fd = fopen($file_name,"a+");
fwrite($fd, $db_name);
fclose($fd);
// Tabellenname Array auslesen und aufbauen
$tbl_array = array(); $c = 0;
$result2 = mysql_list_tables($database);
for($x=0; $x<mysql_num_rows($result2); $x++)
{
$tabelle = mysql_tablename($result2,$x);
if ($tabelle <>"") {
$tbl_array[$c] = mysql_tablename($result2,$x); $c++;$zaehler++;
}
}
flush();
// Start Ausgabe und Berechnung
for ($y = 0; $y < $c; $y++){
$tabelle=$tbl_array[$y];
// Struktur der Tabelle einlesen
$def = "";
$def .= "DROP TABLE IF EXISTS $tabelle; \n";
$def .= "CREATE TABLE $tabelle (\n";
$result3 = mysql_db_query($database, "SHOW FIELDS FROM $tabelle",$conn_id);
while($row = mysql_fetch_array($result3)) {
$def .= " $row[Field] $row[Type]";
if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'";
if ($row["Null"] != "YES") $def .= " NOT NULL";
if ($row['Extra'] != "") $def .= " $row[Extra]";
$def .= ",\n";
}
$def = ereg_replace(",\n$","", $def);
$result3 = mysql_db_query($database, "SHOW KEYS FROM $tabelle",$conn_id);
while($row = mysql_fetch_array($result3)) {
$kname=$row['Key_name'];
if(($kname != "PRIMARY") && ($row['Non_unique'] == 0)) $kname="UNIQUE|$kname";
if(!isset($index[$kname])) $index[$kname] = array();
$index[$kname][] = $row['Column_name'];
}
while(list($xy, $columns) = @each($index)) {
$def .= ",\n";
if($xy == "PRIMARY") $def .= " PRIMARY KEY (" . implode($columns, ", ") . ")";
else if (substr($xy,0,6) == "UNIQUE") $def .= " UNIQUE ".substr($xy,7)." (" . implode($columns, ", ") . ")";
else $def .= " KEY $xy (" . implode($columns, ", ") . ")";
}
$def .= "\n); \n";
// Ende Struktur Modul
$db = @mysql_select_db($database,$conn_id);
$tabelle="".$tabelle;
$ergebnis=array();
$tbl_name = $dump3."$tabelle \n\n";
$fd = fopen($file_name,"a+");
fwrite($fd, $tbl_name.$def);
fclose($fd);
unset($data);
if ($tabelle>""){
$ergebnis[]=@mysql_select_db($database,$conn_id);
$result=mysql_query("select * from $tabelle");
$anzahl= mysql_num_rows ($result);
$spaltenzahl = mysql_num_fields($result);
$data='';
for ($i=0;$i<$anzahl;$i++) {
$zeile=mysql_fetch_array($result);
$data.="insert into $tabelle (";
for ($spalte = 0; $spalte < $spaltenzahl;$spalte++) {
$feldname = mysql_field_name($result, $spalte);
if($spalte == ($spaltenzahl - 1))
{
$data.= $feldname;
}
else
{
$data.= $feldname.",";
}
};
$data.=") VALUES (";
for ($k=0;$k < $spaltenzahl;$k++){
if($k == ($spaltenzahl - 1))
{
$data.="'".addslashes($zeile[$k])."'";
}
else
{
$data.="'".addslashes($zeile[$k])."',";
}
}
$data.= ");\n";
}
$data.= "\n";
}
else
{
$ergebnis[]= "Aucune table!";
}
$zeit = (date("d_m_Y"));
$fd = fopen($file_name,"a+");
$zeit = time() - $start;
//$speed = $speed+$zeit;
for ($i3=0;$i3<count($ergebnis);$i3++){
fwrite($fd, $data);
fclose($fd);
}
}
$groesse = filesize($file_name) / 1024;
$place = $groesse; //$place+$groesse;
$out_dump="<p><label>Base de données :</label>$db1<br />";
$out_dump.="<label>Nombre de tables :</label>$zaehler<br />";
$out_dump.="<label>Taille :</label>".number_format($groesse,2)." KB</p>";
$out_dump.='<p class="confirmation">La sauvegarde a bien été effectuée. Le fichier se trouve dans le dossier « '.$path.' ».</p>';
echo $out_dump;
?>
Je ne sais si ça marche vraiment bien, mais il me semble.
Sinon, tu peux récupérer les sources de phpmyadmin, et retrouver le script qui permet d'exporter la base...
Peut-être autre chose en cherchant un peu: http://www.google.ch/search?q=dump+mysql
Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit