Hier je vous presentais un script de sauvegarde automatique de la base de données, malheureusement je me suis rendu compte par la suite que la fonction système qui exécute cette commande n'est pas compatible avec tous les hébergement s... Alors David du blog www.numb3rs.fr me transmet une solution plus adaptée.
Copier le code suivant que vous placerez dans un dossier spécial auquel vous aurez pris soin de définir un CHMOD 0777 pour permettre l'écriture dans le dossier ... exécutez la page et le tour est joué !
Evidement c'est un peu rébarbatif d'avoir à exécuter cette manip tous les jours alors sur les conseils de weetabix je vous donne le lien de ce site qui vous permet de programmer des taches à heures régulières si votre hébergement ne vous permet d'avoir accès CRON<?php
function svg_bdd($host,$user,$pass,$base) {
//==========================================================================
// création d'un fichier affichant en boucle le contenu des tuples de la base :
//==========================================================================
//on se connecte à la base
mysql_connect($host, $user, $pass);
mysql_select_db($base);
//on récupère les tables de la base
$tables = mysql_list_tables($base);
while ($donnees = mysql_fetch_array($tables)) { //tant qu'on trouve des résultats, on créé un tableau
$table = $donnees[0]; //on affecte la var table avec le premier élément du tableau qui correspond au nom de la table
$res = mysql_query("SHOW CREATE TABLE ".$table);
if($res){
$insertions = "";
$tableau = mysql_fetch_array($res);
$tableau[1] .= ";";
$dumpsql[] = str_replace("\n", "", $tableau[1]);
$req_table = mysql_query("SELECT * FROM ".$table);
$nbr_champs = mysql_num_fields($req_table);
while($ligne = mysql_fetch_array($req_table)){
$insertions .= "INSERT INTO ".$table." VALUES(";
for ($i=0; $i<=$nbr_champs-1; $i++){
$insertions .= "'".mysql_real_escape_string($ligne[$i])."', ";
}
$insertions = substr($insertions, 0, -2);
$insertions .= ");\n";
}
if ($insertions != ""){
$dumpsql[] = $insertions;
}
}
}
return implode("\r", $dumpsql);
}
file_put_contents("sauvegarde".date("Y-m-d").".sql", svg_bdd("localhost","USER","PASS","BASE"));
?>