File: dumptable.php

Recommend this page to a friend!
  Classes of Alessandro Quintiliani  >  PHP Multi MySQLDump  >  dumptable.php  >  Download  
File: dumptable.php
Role: Example script
Content type: text/plain
Description: Script called by an AJAX request and used to execute a mysql dump command line to a single database table
Class: PHP Multi MySQLDump
Dump MySQL database tables for file download
Author: By
Last change:
Date: 4 years ago
Size: 22,758 bytes
 

Contents

Class file image Download
<?php
/*
* ***************************************************************************************************
*
* File name: dumptable.php
*
* Copyright  2017 Alessandro Quintiliani
*
* This file is part of MultiDump package.
*
* MultiDump is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MultiDump is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MultiDump package. If not, see <http://www.gnu.org/licenses/>.
*
* ***************************************************************************************************
*/
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT);

include_once ("Class.MultiDump.php");

$odtbl                  = new MultiDump ();

$dbname                 = $_POST [$odtbl->getDbVarName ()];
$table                  = $_POST [$odtbl->getTableVarName ()];
$varsDbConn             = unserialize ( $_POST [$odtbl->getReferenceDbConnName ()] );
$flag_forced_dump_table = $_POST [$odtbl->getReferenceForcedDumpTableName ()];

$odtbl->setLog ( "log", "log_dump_db_" . $dbname . "__table_" . $table . ".txt", 1 );
$odtbl->wlog ( "start procedure dump table $dbname.$table" );

if(! $dbname || ! $table || ! $varsDbConn){
	echo  "the database name and the table name and the array with the database connection parameters must not be null<br>" ;
	exit;
}

$timeoutLimit = $odtbl->getTimeoutLimit();

echo "-------------------<br>";


$odtbl->setTypeDbToDump ( $dbname, $varsDbConn ['typedb'] );
$odtbl->setHostDbToDump ( $dbname, $varsDbConn ['hostdb'] );
$odtbl->setPortDbToDump ( $dbname, $varsDbConn ['portdb'] );
$odtbl->setLoginDbToDump ( $dbname, $varsDbConn ['logindb'] );
$odtbl->setPasswordDbToDump ( $dbname, $varsDbConn ['passworddb'] );
$odtbl->setTableName ( $table );

$typeDbToDump           = $odtbl->getTypeDbToDump ( $dbname );
$odtbl->setDumpParameters ();
$pobjref                = $odtbl->getDumpParamsRef ();
$FOLDER_DUMP_FILES      = $pobjref->getParamValue('folder_dump_files');


$pdort                  = new PDOconn($varsDbConn ['typedb']);
$pdort->setHost($varsDbConn ['hostdb']);
$pdort->setPort($varsDbConn ['portdb']);
$pdort->setUser($varsDbConn ['logindb']);
$pdort->setPassword($varsDbConn ['passworddb']);

$pdort->setPDOconn();
$odtbl->setPDOref($pdort);

$phpFileDownload        = $odtbl->getDownloadDumpPage();
$postVarDownloadFile    = $odtbl->getPostVarDumpFile();
$postVarTypeCompression = $odtbl->getPostVarCompressionType();

$action                 = "checksum";
$odtbl->setCtrlVar('action');
$odtbl->wlog("start block calculation checksum table $dbname.$table");
if($flag_forced_dump_table == 0){

	$odtbl->wlog("dump table $dbname.$table only on changing checksum table");
	$checksum = $odtbl->getCheckSum ( $dbname, $table );
	$odtbl->wlog("checksum table $dbname.$table calculated: $checksum");

}
else
{
	$odtbl->wlog("dump table $dbname.$table required at each run");

	$fileDumpExistent = $odtbl->getFileDumpTable($dbname, $table);

	if(! $fileDumpExistent ){

		$odtbl->wlog("no file dump table $dbname.$table found --> first dump of the table $dbname.$table");
		$checksum = $odtbl->getCheckSum ( $dbname, $table );
		$odtbl->wlog("checksum calculated on first dump table $dbname.$table: $checksum");

	}
	else
	{
		// dump file < dbname > _ < table > _*.sql exists: since the dump is required at each run, the calculation of
		// the checksum is unnecessary; so the checksum is taken from the dump file name

		$odtbl->wlog("file dump table $dbname.$table exists with name $fileDumpExistent");
		$odtbl->wlog("the dump is required at each run: a new dump is executed using the checksum found in the name of the existent file");
		$fileDumpExistentNoParentDir = str_replace($FOLDER_DUMP_FILES . DIRECTORY_SEPARATOR, "", $fileDumpExistent);
		$remainingDumpFile           = str_replace($dbname."_".$table."_", "", $fileDumpExistentNoParentDir);
		list($checksum,$fileExtension) = explode(".", $remainingDumpFile,2);
		$odtbl->wlog("checksum extracted from filename $fileDumpExistent: $checksum");
	}

}
$odtbl->wlog("end block calculation checksum table $dbname.$table");


### customized output file with the table dump according to database type (MySQL, Oracle, etc..)
$parameter_output_filename_dump = $odtbl->getDumpOutputFile();
$list_replacements              = array ($dbname,$table,$checksum );

$PREFIX_OLD_DUMP_FILES    = $odtbl->getPrefixOldDumpFile();
$dump_file_name           = $pobjref->parseParamPlaceHoldersString ( $parameter_output_filename_dump, $list_replacements );

$FOLDER_DUMP_FILES        = $odtbl->getFolderDumpFiles ();
mkdir ( $FOLDER_DUMP_FILES, 0755 );
$pathToDumpFileName       = $FOLDER_DUMP_FILES . DIRECTORY_SEPARATOR . $dump_file_name;
$urlToPathDumpFileNameZIP = $phpFileDownload . "?" . $postVarDownloadFile . "=" . urlencode($pathToDumpFileName) . "&" . $postVarTypeCompression . "=zip";
$urlToPathDumpFileNameGZIP= $phpFileDownload . "?" . $postVarDownloadFile . "=" . urlencode($pathToDumpFileName) . "&" . $postVarTypeCompression . "=gzip";

$odtbl->wlog("start block execution dump table $dbname.$table to file $pathToDumpFileName");

$fileDumpExistent         = $odtbl->getFileDumpTable($dbname, $table);
$odtbl->wlog("file dump existent: $fileDumpExistent");

$titleLinkZip             = ' title="If the file '.$dump_file_name.' is very large, the creation of the zip file may take several minutes before downloading "';
$titleLinkGzip            = ' title="If the file '.$dump_file_name.' is very large, the creation of the gzip file may take several minutes before downloading "';

if($flag_forced_dump_table == 1){
	// ######################################## DUMP TABLE AT EACH RUN ########################################

	$dump_frequency = "(Dump at each run)";

	$dumping        = "($dbname.$table always dumped)";
	$odtbl->setCtrlVar ( 'dumping' );

	$odtbl->wlog("table $dbname.$table dumped at each run");

	if(! $fileDumpExistent ){

		// FIRST DUMP OF THE TABLE
		$dumping = "($dbname.$table always dumped -- first dump)";
		$odtbl->setCtrlVar ( 'dumping' );

		$odtbl->wlog("dump file for the table $dbname.$table not found: start execution first dump for the table $dbname.$table");


		$cmddump = $odtbl->getCmdDumpDB ( $dbname, $table, $pathToDumpFileName );

		$odtbl->wlog("execution dump command: $cmddump");

		set_time_limit($timeoutLimit);

		exec ( $cmddump, $resultDump );

		echo "$dump_frequency&nbsp;<b>FIRST DUMP: CREATION DUMP FILE TABLE $dump_file_name</b><br/>";

		if(preg_match ( '/error/i', $resultDump ) )
		{
			$odtbl->wlog("ERROR executing $cmddump");
			echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR ON FIRST DUMP: NO DUMP TABLE $dbname.$table</b></font></div>";
		}
		else
		{
			$odtbl->wlog("table $dbname.$table successfully dumped into the file $pathToDumpFileName");
			echo "$dump_frequency&nbsp;table $dbname.$table successfully dumped into the file <a href='".$pathToDumpFileName."'><b>$dump_file_name</b></a>&nbsp(<a href='".$urlToPathDumpFileNameZIP."' $titleLinkZip >zip</a>)&nbsp;(<a href='".$urlToPathDumpFileNameGZIP."' $titleLinkGzip>gzip</a>)";
		}

		$odtbl->wlog("end execution first dump for the table $dbname.$table");

	}
	else
	{

		$dumping                        = "($dbname.$table always dumped -- not first dump)";
		$odtbl->setCtrlVar ( 'dumping' );

		// THE TABLE $table HAS BEEN STILL DUMPED ON A PREVIOUS RUN

		// NEW DUMP OF $table FROM $dbname DATABASE IS REQUIRED BECAUSE OF THE METHOD CALL setListForcedDumpTables
		$odtbl->wlog("dump file for the table $dbname.$table found with name $fileDumpExistent");
		$odtbl->wlog("start execution new dump for the table $dbname.$table because the dump is required at each run");



		$typeDbToDump                   = $odtbl->getTypeDbToDump ( $dbname );
		$odtbl->setDumpParameters ();
		$pobjref                        = $odtbl->getDumpParamsRef ();

		$PREFIX_OLD_DUMP_FILES          = $odtbl->getPrefixOldDumpFile();

		$partCurrentDumpTableFileName   = pathinfo ( $fileDumpExistent );
		$dirCurrentDumpTableFileName    = $partCurrentDumpTableFileName ['dirname'];
		$currentDumpTableFileName       = $partCurrentDumpTableFileName ['basename'];

		$backupCurrentDumpTableFileName = $dirCurrentDumpTableFileName . DIRECTORY_SEPARATOR . $PREFIX_OLD_DUMP_FILES . $currentDumpTableFileName;

		$odtbl->wlog("rename file $currentDumpTableFileName to $PREFIX_OLD_DUMP_FILES$currentDumpTableFileName as backup");

		// BLOCK RENAMING CURRENT SQL FILE PREPRENDING SUFFIX TO BECOME A BACKUP FILE BEFORE DUMPING
		if(false === rename ( $fileDumpExistent, $backupCurrentDumpTableFileName ) )
		{

			$odtbl->wlog("ERROR renaming file $fileDumpExistent to $backupCurrentDumpTableFileName as backup: NO DUMP TABLE $dbname.$table");
			// ERROR BACKUP (RENAME) CURRENT DUMP FILE
			echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR renaming $fileDumpExistent to $backupCurrentDumpTableFileName: NO DUMP TABLE $dbname.$table</b></font></div>";

		}
		else
		{

			// CURRENT DUMP FILE SUCCESSFULLY BACKUPPED (RENAMED)
			$odtbl->wlog("file $fileDumpExistent successfully renamed to $backupCurrentDumpTableFileName as backup: new dump of $dbname.$table");

			$cmddump = $odtbl->getCmdDumpDB ( $dbname, $table, $pathToDumpFileName );

			$odtbl->wlog("execution dump command: $cmddump");
			set_time_limit($timeoutLimit);
			exec ( $cmddump, $resultDump );
			echo "$dump_frequency&nbsp;<b>NEW DUMP: CREATION DUMP FILE TABLE $dump_file_name</b><br>";

			if(preg_match ( '/error/i', $resultDump ) )
			{

				// ERROR NEW DUMP TABLE

				$odtbl->wlog("ERROR NEW DUMP TABLE $dbname.$table TO $pathToDumpFileName: restoring backup $backupCurrentDumpTableFileName");

				echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR execution command dump table $dbname.$table: NO DUMP TABLE $dbname.$table</b>";
				echo "$dump_frequency&nbsp;<b>restore backup file $backupCurrentDumpTableFileName</b></font></div>";

				// RESTORING BACKUP FILE
				$pathToDumpCurrentFileName      = $odtbl->getFileDumpTable($dbname, $table);

				$partCurrentDumpTableFileName   = pathinfo ( $pathToDumpCurrentFileName );

				$dirCurrentDumpTableFileName    = $partCurrentDumpTableFileName ['dirname'];
				$currentDumpTableFileName       = $partCurrentDumpTableFileName ['basename'];

				$backupCurrentDumpTableFileName = $dirCurrentDumpTableFileName . DIRECTORY_SEPARATOR . $PREFIX_OLD_DUMP_FILES . $currentDumpTableFileName;
				$restoredDumpTableFileName      = $dirCurrentDumpTableFileName . DIRECTORY_SEPARATOR . $currentDumpTableFileName;

				$FOLDER_DUMP_FILES              = $pobjref->getParamValue('folder_dump_files');

				$odtbl->wlog("start restoring file $backupCurrentDumpTableFileName to $restoredDumpTableFileName");

				if(false === rename ( $backupCurrentDumpTableFileName, $restoredDumpTableFileName ) )
				{
					// ERROR RESTORING BACKUP FILE

					echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR restoring file $backupCurrentDumpTableFileName in $restoredDumpTableFileName: restore file $backupCurrentDumpTableFileName manually removing prefix $PREFIX_OLD_DUMP_FILES</b></font></div>";
					$odtbl->wlog("ERROR RESTORING FILE $backupCurrentDumpTableFileName TO $restoredDumpTableFileName: RESTORE FILE MANUALLY REMOVING PREFIX $PREFIX_OLD_DUMP_FILES");

					echo "$dump_frequency&nbsp;file $backupCurrentDumpTableFileName successfully restored (renamed) in $restoredDumpTableFileName";
					$odtbl->wlog("Backup file $backupCurrentDumpTableFileName successfully restored to $restoredDumpTableFileName");
				}

			}
			else
			{

				// DUMP SUCCESSFUL

				$odtbl->wlog("execution dump command successful: removing backup file $backupCurrentDumpTableFileName");

				echo "$dump_frequency&nbsp;table $dbname.$table successfully dumped into the file <a href='".$pathToDumpFileName."'><b>$dump_file_name</b></a>&nbsp(<a href='".$urlToPathDumpFileNameZIP."' $titleLinkZip >zip</a>)&nbsp;(<a href='".$urlToPathDumpFileNameGZIP."' $titleLinkGzip >gzip</a>)";

				// REMOVAL BACKUP FILE
				if(false === unlink ( $backupCurrentDumpTableFileName ))
				{
					// ERROR REMOVING BACKUP FILE
					echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR removing backup file $backupCurrentDumpTableFileName: remove file manually</b></font></div>";
					$odtbl->wlog("ERROR REMOVING BACKUP FILE $backupCurrentDumpTableFileName: REMOVE FILE MANUALLY");
				}
				else
				{
					$odtbl->wlog("backup file $backupCurrentDumpTableFileName successfully removed");
				}
			}

		} // if ( false === rename($pathToDumpCurrentFileName, $backupCurrentDumpTableFileName) )

		$odtbl->wlog("end execution new dump for the table $dbname.$table because dump is required at each run");

	}// if (!count($pathToFileDumpFound))

}
else
{
	// ######################################## DUMP TABLE ONLY ON CHANGING OF CONTENT / STRUCTURE ########################################

	$dump_frequency = "(Dump on change)";

	$dumping        = "($dbname.$table dumped on change checksum)";
	$odtbl->setCtrlVar ( 'dumping' );

	$odtbl->wlog("table $dbname.$table dumped only on change checksum");

	if(! $fileDumpExistent ){

		// FIRST DUMP OF THE TABLE

		$dumping = "($dbname.$table dumped on change checksum -- first dump)";
		$odtbl->setCtrlVar ( 'dumping' );

		$odtbl->wlog("dump file for the table $dbname.$table not found: start execution first dump for the table $dbname.$table");

		if($flag_forced_dump_table == 0)
		{
			$dump_frequency = "(Dump on change)";
		}
		else
		{
			$dump_frequency = "(Dump at each run)";
		}

		$cmddump = $odtbl->getCmdDumpDB ( $dbname, $table, $pathToDumpFileName );

		$odtbl->wlog("execution dump command: $cmddump");

		set_time_limit($timeoutLimit);

		exec ( $cmddump, $resultDump );

		echo "$dump_frequency&nbsp;<b>FIRST DUMP: CREATION DUMP FILE TABLE $dump_file_name</b><br/>";

		if(preg_match ( '/error/i', $resultDump ) )
		{
			$odtbl->wlog("ERROR executing $cmddump");
			echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR IN FIRST DUMP: NO DUMP TABLE $dbname.$table</b></font></div>";
		}
		else
		{
			$odtbl->wlog("table $dbname.$table successfully dumped into the file $pathToDumpFileName");
			echo "$dump_frequency&nbsp;table $dbname.$table successfully dumped into the file <a href='".$pathToDumpFileName."'><b>$dump_file_name</b></a>&nbsp(<a href='".$urlToPathDumpFileNameZIP."' $titleLinkZip >zip</a>)&nbsp;(<a href='".$urlToPathDumpFileNameGZIP."' $titleLinkGzip >gzip</a>)";
		}
		$odtbl->wlog("end execution first dump for the table $dbname.$table");

	}
	else
	{

		// FILE WITH THE DUMP OF THE CURRENT TABLE EXISTS: CHECK IF IT HAS AN OLD CHECKSUM OR NOT

		$dumping = "($dbname.$table dumped on change checksum -- not first dump)";
		$odtbl->setCtrlVar ( 'dumping' );

		$odtbl->wlog("table $dbname.$table dumped on a previous run: check if it has an old checksum detecting if file $pathToDumpFileName exists or not");


		if(file_exists ( $pathToDumpFileName )){
			// TABLE DUMP FILE EXISTS AND NO FORCED DUMP: NO NEW DUMP

			echo "(Dump on change)&nbsp;no new dump table <b>$dbname.$table</b> required: the file <a href='".$pathToDumpFileName."'><b>$dump_file_name</b></a> has not changed since last dump &nbsp(<a href='".$urlToPathDumpFileNameZIP."' $titleLinkZip >zip</a>)&nbsp;(<a href='".$urlToPathDumpFileNameGZIP."' $titleLinkGzip >gzip</a>)";

			$odtbl->wlog("file $pathToDumpFileName exists and the checksum of the table $dbname.$table has not changed since last dump");
			$odtbl->wlog("no new dump of the table $dbname.$table is required");

		}
		else
		{

			// TABLE DUMP FILE NOT EXISTS: NEW DUMP REQUIRED
			$odtbl->wlog("file $pathToDumpFileName does not exist: this means that the checksum of the table $dbname.$table has changed since last dump");
			$odtbl->wlog("start execution new dump for the table $dbname.$table due to a change of checksum");


			$typeDbToDump                   = $odtbl->getTypeDbToDump ( $dbname );
			$odtbl->setDumpParameters ();
			$pobjref                        = $odtbl->getDumpParamsRef ();

			$PREFIX_OLD_DUMP_FILES          = $odtbl->getPrefixOldDumpFile();

			$partCurrentDumpTableFileName   = pathinfo ( $fileDumpExistent );
			$dirCurrentDumpTableFileName    = $partCurrentDumpTableFileName ['dirname'];
			$currentDumpTableFileName       = $partCurrentDumpTableFileName ['basename'];

			$backupCurrentDumpTableFileName = $dirCurrentDumpTableFileName . DIRECTORY_SEPARATOR . $PREFIX_OLD_DUMP_FILES . $currentDumpTableFileName;

			$odtbl->wlog("rename file $currentDumpTableFileName to $PREFIX_OLD_DUMP_FILES$currentDumpTableFileName as backup");

			$odtbl->wlog("rename file $pathToDumpFileName to $backupCurrentDumpTableFileName as backup");

			// BLOCK RENAMING CURRENT SQL FILE PREPRENDING SUFFIX TO BECOME A BACKUP FILE BEFORE DUMPING
			if(false === rename ( $fileDumpExistent, $backupCurrentDumpTableFileName ) )
			{

				$odtbl->wlog("ERROR renaming file $fileDumpExistent to $backupCurrentDumpTableFileName as backup: NO DUMP TABLE $dbname.$table");
				// ERROR BACKUP (RENAME) CURRENT DUMP FILE
				echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR renaming $fileDumpExistent to $backupCurrentDumpTableFileName: NO DUMP TABLE $dbname.$table</b></font></div>";

			}
			else
			{

				// CURRENT DUMP FILE SUCCESSFULLY BACKUPPED (RENAMED)
				$odtbl->wlog("file $pathToDumpFileName successfully renamed to $backupCurrentDumpTableFileName as backup: new dump of $dbname.$table");

				$cmddump = $odtbl->getCmdDumpDB ( $dbname, $table, $pathToDumpFileName );

				$odtbl->wlog("execution dump command: $cmddump");

				set_time_limit($timeoutLimit);

				exec ( $cmddump, $resultDump );

				echo "$dump_frequency&nbsp;<b>NEW DUMP: CREATION DUMP FILE TABLE $dump_file_name</b><br>";

				if(preg_match ( '/error/i', $resultDump ) )
				{

					// ERROR NEW DUMP TABLE

					$odtbl->wlog("ERROR NEW DUMP TABLE $dbname.$table TO $pathToDumpFileName: restoring backup $backupCurrentDumpTableFileName");

					echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<font color='FF0000'><b>ERROR execution command dump table $dbname.$table: NO DUMP TABLE $dbname.$table</b>";
					echo "$dump_frequency&nbsp;<b>restore backup file $backupCurrentDumpTableFileName</b></font></div>";

					// RESTORING BACKUP FILE
					$pathToDumpCurrentFileName      = $odtbl->getFileDumpTable($dbname, $table);

					$partCurrentDumpTableFileName   = pathinfo ( $pathToDumpCurrentFileName );

					$dirCurrentDumpTableFileName    = $partCurrentDumpTableFileName ['dirname'];
					$currentDumpTableFileName       = $partCurrentDumpTableFileName ['basename'];

					$backupCurrentDumpTableFileName = $dirCurrentDumpTableFileName . DIRECTORY_SEPARATOR . $PREFIX_OLD_DUMP_FILES . $currentDumpTableFileName;
					$restoredDumpTableFileName      = $dirCurrentDumpTableFileName . DIRECTORY_SEPARATOR . $currentDumpTableFileName;

					$FOLDER_DUMP_FILES              = $pobjref->getParamValue('folder_dump_files');

					$odtbl->wlog("start restoring file $backupCurrentDumpTableFileName to $restoredDumpTableFileName");

					if(false === rename ( $backupCurrentDumpTableFileName, $restoredDumpTableFileName ) )
					{
						// ERROR RESTORING BACKUP FILE

						echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR restoring file $backupCurrentDumpTableFileName in $restoredDumpTableFileName: restore file $backupCurrentDumpTableFileName manually removing prefix $PREFIX_OLD_DUMP_FILES</b></font></div>";
						$odtbl->wlog("ERROR RESTORING FILE $backupCurrentDumpTableFileName TO $restoredDumpTableFileName: RESTORE FILE MANUALLY REMOVING PREFIX $PREFIX_OLD_DUMP_FILES");

						echo "$dump_frequency&nbsp;file $backupCurrentDumpTableFileName successfully restored (renamed) in $restoredDumpTableFileName";
						$odtbl->wlog("Backup file $backupCurrentDumpTableFileName successfully restored to $restoredDumpTableFileName");
					}

				}
				else
				{

					// DUMP SUCCESSFUL

					$odtbl->wlog("execution dump command successful: removing backup file $backupCurrentDumpTableFileName");

					echo "$dump_frequency&nbsp;table $dbname.$table successfully dumped into the file <a href='".$pathToDumpFileName."'><b>$dump_file_name</b></a>&nbsp(<a href='".$urlToPathDumpFileNameZIP."' $titleLinkZip >zip</a>)&nbsp;(<a href='".$urlToPathDumpFileNameGZIP."' $titleLinkGzip >gzip</a>)";

					// REMOVAL BACKUP FILE
					if(false === unlink ( $backupCurrentDumpTableFileName ))
					{
						// ERROR REMOVING BACKUP FILE
						echo "<div id='div_dump_error_id_".$dbname."__".$table."'><font color='FF0000'>$dump_frequency&nbsp;<b>ERROR removing backup file $backupCurrentDumpTableFileName: remove file manually</b></font></div>";
						$odtbl->wlog("ERROR REMOVING BACKUP FILE $backupCurrentDumpTableFileName: REMOVE FILE MANUALLY");
					}
					else
					{
						$odtbl->wlog("backup file $backupCurrentDumpTableFileName successfully removed");
					}
				}

			} // if ( false === rename($pathToDumpCurrentFileName, $backupCurrentDumpTableFileName) )

			$odtbl->wlog("end execution new dump for the table $dbname.$table due to a change of checksum");

		} // if (file_exists($pathToDumpFileName))

	}// if (!count($pathToFileDumpFound))

} // if ($flag_forced_dump_table == 1) {

$pdort->closeConn();
unset($pdort);
$odtbl->wlog("end block execution dump to file $pathToDumpFileName");

$odtbl->wlog ( "end procedure dump table $dbname.$table" );

$odtbl->end ();
unset ( $odtbl );
For more information send a message to info at phpclasses dot org.