mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 21:27:25 +02:00
Fixed mysql class backup method errors. Third-party Mysqldump class added and integrated.
This commit is contained in:
2051
e107_handlers/Ifsnop/Mysqldump/Mysqldump.php
Normal file
2051
e107_handlers/Ifsnop/Mysqldump/Mysqldump.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2720,26 +2720,76 @@ class e_db_mysql
|
|||||||
* @param $table string - name without the prefix or '*' for all
|
* @param $table string - name without the prefix or '*' for all
|
||||||
* @param $file string - optional file name. or leave blank to generate.
|
* @param $file string - optional file name. or leave blank to generate.
|
||||||
* @param $options - additional preferences.
|
* @param $options - additional preferences.
|
||||||
* @return backup file path.
|
* @return string|bool backup file path.
|
||||||
*/
|
*/
|
||||||
function backup($table='*', $file='', $options=null)
|
function backup($table='*', $file='', $options=null)
|
||||||
{
|
{
|
||||||
$dbtable = $this->mySQLdefaultdb;
|
|
||||||
|
if($this->pdo === false)
|
||||||
|
{
|
||||||
|
$this->mysqlLastErrText = "PDO is required to use the mysql backup() method";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// $dbtable = $this->mySQLdefaultdb;
|
||||||
$fileName = ($table =='*') ? str_replace(" ","_",SITENAME) : $table;
|
$fileName = ($table =='*') ? str_replace(" ","_",SITENAME) : $table;
|
||||||
$fileName = preg_replace('/[^\w]/i',"",$fileName);
|
$fileName = preg_replace('/[^\w]/i',"",$fileName);
|
||||||
|
|
||||||
$backupFile = ($file) ? e_BACKUP.$file : e_BACKUP.strtolower($fileName)."_".$this->mySQLPrefix.date("Y-m-d-H-i-s").".sql";
|
$backupFile = ($file) ? e_BACKUP.$file : e_BACKUP.strtolower($fileName)."_".$this->mySQLPrefix.date("Y-m-d-H-i-s").".sql";
|
||||||
|
|
||||||
if($table=='*')
|
if($table === '*')
|
||||||
{
|
{
|
||||||
$nolog = vartrue($options['nologs']) ? 'nologs' : 'all';
|
$nolog = vartrue($options['nologs']) ? 'nologs' : 'all';
|
||||||
$tableList = $this->tables($nolog);
|
$tableList = $this->tables($nolog);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$tableList = explode(",",$table);
|
$tableList = explode(",",$table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
include_once(dirname(__FILE__) . '/Ifsnop/Mysqldump/Mysqldump.php');
|
||||||
|
|
||||||
|
$config = e107::getMySQLConfig();
|
||||||
|
|
||||||
|
$dumpSettings = array(
|
||||||
|
'compress' => !empty($options['gzip']) ? Ifsnop\Mysqldump\Mysqldump::GZIP : Ifsnop\Mysqldump\Mysqldump::NONE,
|
||||||
|
'include-tables' => array(),
|
||||||
|
'no-data' => false,
|
||||||
|
'add-drop-table' => !empty($options['droptable']) ? true : false,
|
||||||
|
'single-transaction' => true,
|
||||||
|
'lock-tables' => true,
|
||||||
|
'add-locks' => true,
|
||||||
|
'extended-insert' => true,
|
||||||
|
'disable-foreign-keys-check' => true,
|
||||||
|
'skip-triggers' => false,
|
||||||
|
'add-drop-trigger' => true,
|
||||||
|
'databases' => true,
|
||||||
|
'add-drop-database' => false,
|
||||||
|
'hex-blob' => true,
|
||||||
|
'reset-auto-increment' => false,
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach($tableList as $tab)
|
||||||
|
{
|
||||||
|
$dumpSettings['include-tables'][] = $config['mySQLprefix'].trim($tab);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
$dump = new Ifsnop\Mysqldump\Mysqldump('mysql:host='.$config['mySQLserver'].';dbname='.$config['mySQLdefaultdb'], $config['mySQLuser'], $config['mySQLpassword'], $dumpSettings);
|
||||||
|
$dump->start($backupFile);
|
||||||
|
return $backupFile;
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
$this->mysqlLastErrText = 'mysqldump-php error: ' .$e->getMessage();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
|
||||||
$header = "-- e107 Database Backup File \n";
|
$header = "-- e107 Database Backup File \n";
|
||||||
$header .= "-- Host: ".$_SERVER['SERVER_NAME']."\n";
|
$header .= "-- Host: ".$_SERVER['SERVER_NAME']."\n";
|
||||||
@@ -2791,7 +2841,7 @@ class e_db_mysql
|
|||||||
|
|
||||||
return $backupFile;
|
return $backupFile;
|
||||||
// file_put_contents('memory.log', 'memory used in line ' . __LINE__ . ' is: ' . memory_get_usage() . PHP_EOL, FILE_APPEND);
|
// file_put_contents('memory.log', 'memory used in line ' . __LINE__ . ' is: ' . memory_get_usage() . PHP_EOL, FILE_APPEND);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user