Hallo iedereen,
Ik heb de volgende code van deze website gehaald.
Met deze code maak ik een backup van mijn database, werkt perfect!
<?PHP
/* Mysql Backupper
* Backup your MySql Without PhpMyAdmin.
*/
// config hier mag je dingen veranderen
$cfg['naam'] = ''; // inlognaam mysql
$cfg['ww'] = ''; // wachtwoord mysql
$cfg['host'] = 'localhost'; // host, meestal localhost
$cfg['db'] = ''; // database
$cfg['bes'] = 1; // schrijven in bestand, 1=ja,0=nee
$cfg['view'] = 2; // 0=query's weergeven+error's, 1= alleen querys,2= alleen errors,3=niks
$cfg['str'] = 1; // structuur, 1=ja,2=nee
$cfg['data'] = 1; // data, 1=ja,0=nee
$cfg['dbs'] = 1; // met create db?, 1=ja,0=nee
// een data array
$key = array("PRI"=>"PRIMARY KEY","UNI"=>"UNIQUE KEY","MUL"=>"KEY",""=>"");
// connect to database
$err = array(); // error array
$arr = array(); // stuctuur array
// connect to host
if(mysql_connect($cfg['host'],$cfg['naam'],$cfg['ww'])) {
// select db
if(!mysql_select_db($cfg['db'])) {
$err[] = 'Verbinding DB mislukt';
}
} else {
// host mislukt
$err[] = 'Verbinding host mislukt';
}
/*
* Backupper
*/
// DIT NIET VERWIJDEREN
$querys[] = "-- Generate By CMS-Backuppern";
$querys[] = "-- MySql Dumpn";
$querys[] = "-- n";
$querys[] = "-- Database: ".$cfg['db']."n";
$querys[] = "-- ";
if($cfg['view'] <= 1) {
echo "<pre>";
for($i=0;$i<count($querys);$i++) {
echo $querys[$i];
}
echo "</pre>";
}
if($cfg['dbs'] == 1) {
if($cfg['bes'] == 1) {
$querys[] = "-- n";
$querys[] = "-- Create Database n";
$querys[] = "CREATE DATABASE ".$cfg['db'].";n";
$querys[] = "USE ".$cfg['db'].";n";
$querys[] = "-- Rest nn";
}
echo "-- n";
echo "-- create Database";
echo "CREATE DATABASE ".$cfg['db'].";n";
echo "USE ".$cfg['db'].";n";
echo "-- rest nn";
}
// verkrijg tables
$get_tab = mysql_query("SHOW TABLES FROM ".$cfg['db']);
// while tab
while($x = mysql_fetch_array($get_tab)) {
// structuur vars
$s = "-- n";
$s .= "-- Structuur van tabel: ".$x[0]."n";
$s .= "-- nn";
$s .= "CREATE TABLE ".$x[0]." ( n";
$k = ''; // keys
// get tabelen
$get_v = mysql_query("SHOW COLUMNS FROM ".$x[0]." FROM ".$cfg['db']);
// EIGENWIJS DING
while($iks = mysql_fetch_assoc($get_v)) {
$temp = $iks['Field'];
// zet in array voor de data
if(!isset($velden[$x[0]][$temp])) {
$velden[$x[0]][$temp] = $temp;
}
// table maken, stuctuur
if($cfg['str'] == 1) {
if(!isset($arr[$x[0]][$ike['Field']])) {
// in array proppen
$arr[$x[0]][$iks['Field']] = $iks['Field'];
// null berekenen
$null = (!empty($iks['Null']) && $iks['Null'] == "YES") ? "NULL" : "NOT NULL";
// bij de string proppen
$s .= $iks['Field']." ".$iks['Type']." ".$null." ".$iks['Extra'].",n";
// als key niet leeg is
if(!empty($iks['Key'])) {
$k .= $key[$iks['Key']]." (".$iks['Field']."),n";
}
}
}
}
// structuur weergeven
$var = $s.substr($k,0,-2)."n);";
if($cfg['view'] <= 1 && $cfg['str'] == 1) {
echo '<pre>'.$var.'</pre>';
}
// structuur in bestand
if($cfg['str'] == 1) {
$querys[] = "n";
$querys[] = $var;
$querys[] = "n";
}
// data
$data = mysql_query("SELECT * FROM ".$x[0]);
// zet alla data in array's
while($z = mysql_fetch_array($data)) {
// velden en data
$imkeys = ""; // keys str
$imdata = ""; // data str
foreach($velden[$x[0]] as $val) {
// zet data in een str
$imkeys .= $val.",";
$imdata .= "'".$z[$val]."',";
}
// query maken
$q = "INSERT INTO ".$x[0]." (".substr($imkeys,0,-1).") VALUES (".substr($imdata,0,-1).");n";
// weergeven
if($cfg['view'] <= 1 && $cfg['data'] == 1) {
echo $q.'<br>';
}
// query in bestand
if($cfg['data'] == 1) {
$querys[] = $q;
}
// dellen
unset($q);
} // data
} // grote while, tables
// bestand afhandeling
if($cfg['bes']==1) {
$dat = '';
// openen
$fp = fopen($cfg['db'].'.sql','w');
// geen bestand aanmaken
if(!$fp) {
$err[] = 'Kan bestand niet openen';
}
// inladen in var
foreach($querys as $content) {
$dat .= $content;
}
// schrijven
$write = fwrite($fp,$dat);
// als schrijven is mislukt
if(!$write) {
$err[] = 'Kan niet in bestand schrijven';
}
// sluiten
fclose($fp);
}
// error afhandeling
if(count($err) == 0) {
echo '<br><b>Exporteren is Gelukt</b><br>';
} else {
if($cfg['view'] == 0 || $cfg['view'] == 2) {
echo 'Deze errors zijn opgetreden<br>';
foreach($err as $val) {
echo $val .'<br/>';
}
}
}
/*
* Einde backupper
*/
?>
Maar nu wil ik er enkele wijzigingen in maken en dit lukt me helaas niet...
1. Ik zou graag aan willen geven in welke map het opgeslagen moet worden
2. Graag zou ik achter de bestandsnaam (nu de naam van de database) een toevoeging van datum en tijd willen
3. (minder belangrijk, maar zou leuk zijn) na het backuppen een knop met "backup downloaden" en dat je de backup dan naar een lokale schijf kunt downloaden (mag als .txt maar ook als .zip)
Kan iemand me hiermee helpen / de weg wijzen...?
Alvast bedankt voor jullie hulp!
Groeten Albert
3.234 views