Signaler

Sauvegarde d'une base [Résolu]

Posez votre question totdmm 42Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - Dernière réponse le 9 févr. 2017 à 08:41 par totdmm
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 
Utile
+0
plus moins
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 42Messages 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 ( )
Répondre
jordane45 17251Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 25 mai 2017 Dernière intervention - 8 févr. 2017 à 09:10
Tu as testé la command directement via la console cmd ?
Répondre
totdmm 42Messages postés mercredi 22 janvier 2014Date d'inscription 28 février 2017 Dernière intervention - 8 févr. 2017 à 09:15
non
Répondre
jordane45 17251Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 25 mai 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.
Répondre
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis
Utile
-1
plus moins
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).
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !