Sauvegarde d'une base

Résolu/Fermé
totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019 - 7 févr. 2017 à 13:59
totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019 - 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

A voir également:

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
8 févr. 2017 à 02:10
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
0
totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019
8 févr. 2017 à 09:07
merci de ta réponse il m'a donné
Array ( )
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019
8 févr. 2017 à 09:10
Tu as testé la command directement via la console cmd ?
0
totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019
8 févr. 2017 à 09:15
non
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019
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.
0
totdmm Messages postés 55 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 23 avril 2019
9 févr. 2017 à 08:41
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
0
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).
-1