Kao zaštitu od svih zala, ugradio sam dugme koji mi na klik izbacuje bekap najvažnije tabele, kao i dugme za celu bazu.
Rade savršeno. Pošto pomoću aplikacije, zapravo, unosim reči, zgodno je da se broj unetih reči, pored datuma, nađe u imenu bkp fajla.
Evo tog spasonosnog koda, fajlic: daj-bkp.php
Code:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
########## Database Info ##########
$dbhost = 'localhost';
$dbname = 'vasdbname';
$dbuser = 'vasdbuser';
$dbpass = 'vasasifra';
$link = @mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
mysql_query("SET NAMES 'utf8'", $link);
mysql_select_db($dbname) or die("Could not open the db '$dbname'");
###########################
$polje1 = "vasepolje1";
$table1 = "vasatable1";
$count=mysql_query("SELECT $polje1 FROM $table1;");
$brojreci=mysql_num_rows($count);
/* kod za bekap pojedinacnih tabela */
$dumpfname = $table1 . "_" . date("d-m-Y") . "_" . $brojreci .".sql";
$command = "mysqldump -r $dumpfname --add-drop-table --host=$dbhost --user=$dbuser --password=$dbpass $dbname $table1 ";
system($command);
if (file_exists($dumpfname)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($dumpfname));
flush();
readfile($dumpfname);
}
//brisanje fajla u folderu servera
$files = glob('*.sql');
foreach($files as $file){
if(is_file($file))
unlink($file);
}
?>
Ako hoćete bkp cele baze, zamenite $table1 sa $dbname:
Code:
$dumpfname = $dbname . "_" . date("d-m-Y") . "_" . $brojreci .".sql";
$command = "mysqldump -r $dumpfname --add-drop-table --host=$dbhost --user=$dbuser --password=$dbpass $dbname ";
Što se tiče dugmeta, njega sam "sakrio" iz uslova da bude vidljiv samo meni
Code:
<?php
if (isset($_COOKIE["AdminXXXX"]))
{
echo "<input type='button' class='dugme-print-meni1' value='Bekap MySql' onclick='DajBKP();' title='Bkp cele baze'>";
}
?>
Funkcija u javascriptu:
Code:
<script>
function DajBKP()
{
window.open("daj-bkp.php");
}
</script>