updlw

Php Dump

Voilà un script que l’on retrouve sur quelques pages web ICI notamment, et qui a bien fonctionné pour moi. Je trouve cela facile. Plus que facile même. Il suffit de lancer sa page au moment où l’on veut un dump… soit 2 clicks.

Créer un fichier php et insérer le code suivant :

<?php
// création d’une fonction comportant les identifiants de connexion au FTP :
function mysql_structure() {
$host = ‘xxxxx’;
$user = ‘xxxxx’;
$pass = ‘xxxxx’;
$base = ‘xxxxx’;
// création d’un fichier affichant en boucle le contenu des tuples de la base :
mysql_connect($host, $user, $pass);
mysql_select_db($base);
$tables = mysql_list_tables($base);
while ($donnees = mysql_fetch_array($tables ))
{
$table = $donnees[0];
$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);
}
// creation d’une fonction file_put_content si le script est en PHP4 :
if(!function_exists(‘file_put_contents’)) {
function file_put_contents($filename, $data, $file_append = false) {
$fp = fopen($filename, (!$file_append ? ‘w+’ : ‘a+’));
if(!$fp) {
trigger_error(‘file_put_contents ne peut pas écrire dans le fichier.’, E_USER_ERROR);
return;
}
fputs($fp, $data);
fclose($fp);
}
}
// création du fichier de dump sur le même niveau que ce fichier dump.php
file_put_contents(« sqldump_ ».date(« d-n-Y » ). ».sql », mysql_structure());
// effacement du fichier precedant (créé 7 jours plus tot)
$time_old = getdate(mktime()-(7*24*3600));
$an = $time_old[‘year’];
$mois = $time_old[‘mon’];
$jour = $time_old[‘mday’];
// formatage des jours à 1 chiffre
for($k=1; $k<10; $k++)
{
if ($jour==$k)
{
$jour=’0′.$jour;
}
}
$date_old=$jour.’-‘.$mois.’-‘.$an;
$file_old= »sqldump_ ».$date_old. ».sql »;
unlink($file_old);
?>

Sauvegarder ce fichier à la racine www du site (mutualisé par exemple).

Lancer la page web. Ce script sauvegardera un fichier .sql à l’endroit du fichier php. Il gère également les différentes versions.

Note : +++

Au Suivant Poste

Précedent Poste

© 2024 updlw

Thème par Anders Norén