Menu

Sauvegarde d'une base [Résolu/Fermé]

totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 7 févr. 2017 à 13:59 - Dernière réponse : totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention
- 9 févr. 2017 à 08:41
salut tout le monde
je cherche a faire une sauvegarde d'une base de donner pour une application en locale (PHP), par l'intermédiaire d'un script php pour que l'utilisateur puisse faire une sauvegarde facilement en un clique sans passer par la console de phpmyadmin.


$host = "localhost";
$user = "root";
$pass = "";
$db = "db";
$date = date("Ymd-H\hi" );
$backup = $date."_".$db.".sql";

$command = "mysqldump --host=$host --user=$user --password=$pass $db > $backup";
system($command);


le fichier est vide pourquoi

merci

Afficher la suite 

7 réponses

jordane45 20624 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 8 févr. 2017 à 02:10
0
Utile
4
Bonjour,

Ajoute ceci après l'appel à ta commande:
 print_r(file($backup)); // affiche le dump ou l'erreur de mysqldump

et dis nous ce que ça te donne
totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 8 févr. 2017 à 09:07
merci de ta réponse il m'a donné
Array ( )
jordane45 20624 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention > totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 8 févr. 2017 à 09:10
Tu as testé la command directement via la console cmd ?
totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 8 févr. 2017 à 09:15
non
jordane45 20624 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention > totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 8 févr. 2017 à 09:25
Commence donc par ça .. histoire de voir si le souci vient de l'instruction (qui me semble bonne.. mais bon...) ou du "php" lui même.
totdmm 42 Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 9 févr. 2017 à 08:41
0
Utile
j'ai trouvé la solution finalement pour sauvegarder

<?php ob_start();
$nom_de_la_base ='p';
$heure = date("H:i");
define('FC',date('d').'-'.date('m').'-'.date('Y').'____'.date('H').';'.date('i').'.sql');

define('H','localhost');define('N','root');define('P','');define('T',$nom_de_la_base);
$cnt = mysql_connect(H,N,P)or die(mysql_error());mysql_select_db(T,$cnt)or die(mysql_error());

echo 'DROP DATABASE IF EXISTS `'.$nom_de_la_base.'`;
CREATE DATABASE `'.$nom_de_la_base.'` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `'.$nom_de_la_base.'`;'."\n\n";

$aa = mysql_query('show tables');while ($a = mysql_fetch_row($aa)){
$bb = mysql_query('SELECT * FROM '.$a[0].''); $tt = mysql_num_rows($bb); $nb = mysql_num_fields($bb);

echo 'DROP TABLE IF EXISTS `'.$a[0].'`;';
$sct = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$a[0].''));
echo "\n".$sct[1].";\n\n";

if($tt > 0){ echo 'INSERT INTO '.$a[0].' VALUES';

$t=0;while( $b = mysql_fetch_array($bb)){ echo '(';
for($i = 0; $i < $nb; $i++){if($i == 0){echo "'$b[$i]'";} else { echo ',\''.mysql_real_escape_string($b[$i]).'\'';}}
$t++; if($t < $tt){ echo '),'."\n";} else {echo ');'."\n";}}

echo "\n\n\n"; }}

define('FP',fopen(FC,'w')); fwrite(FP,ob_get_contents());fclose(FP);ob_end_clean(); ?>

pour importer

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Document sans titre</title>
</head>
<!DOCTYPE html>
<html>
<head>
<title>Titre de la page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p><form name="fupload" action="" method="POST" ENCTYPE="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="102400">
<input name="photo" TYPE="file" size="30">
<input type="submit" name="Go1" id="Go1" value="Go" onclick="return confirm('Etes vous sur de vouloir bloquer cette personne ?');" />
</form>

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

if (isset($_POST['Go1'])){
$filename=$_FILES['photo']['name'];
echo "Le nom du fichier contenant la photo est: ";
echo $filename;

include('connexion.php');

$file_content = file("$filename");
$query = "";
foreach($file_content as $sql_line){
if(trim($sql_line) != "" && strpos($sql_line, "--") === false){
$query .= $sql_line;

if (substr(rtrim($query), -1) == ';'){

$result = mysql_query($query,$connect)or die(mysql_error());
$query = "";
}
}
}




}
?>
</body>
</html>
<body>
</body>
</html>


ca marche tre tre bien
-1
Utile
PHP n'est pas local , loin de là. Utilisez plutôt javasript si besion de fonctionnalités uniquement locale.
Chaque script PHP aura besoin du serveur et correspond à une requête, d'où l'intérêt de limiter celles ci afin d'améliorer la vitesse de traitement(le nombre & quantités de requêtes faite au serveur PHP).