Цитата
Я в курсе что таблиц нет. Поэтому и говорю Вам, что файлы явно потерянные, и для их поиска и удаления есть соответствующий функционал. Это не внешние файлы, об этом речь и не шла.
Отправлено 20 Март 2014 - 12:58
Цитата
Отправлено 20 Март 2014 - 13:02
Цитата
Отправлено 20 Март 2014 - 13:07
CbCoder (20 Март 2014 - 13:02) писал:
Сообщение отредактировал wondertalik: 20 Март 2014 - 13:20
Отправлено 20 Март 2014 - 13:55
class DiffBackup {
private $filter = array();
private $settings;
private $list;
private $file;
private $delimiter = "\n";
public function __construct(CBSettings $setngs) {
$this->settings = $setngs;
$this->file = new WFile("10.03.2014.sql");
}
/**
* Используется для получения списка таблиц, которые требуется в бэкап отправить
* @return mixed
*/
public function getListTable() {
//Получаем список всех таблиц
$sqlQuery = "SHOW TABLES";
$result = sql_query($sqlQuery);
$tables = array();
if(sql_num_rows($result) > 0) {
while($row = sql_fetch_assoc($result)) {
//Формируем массив таблиц
$tables[] = $row['Tables_in_' . $this->settings->getSettings(CBSettings::DBNAME)];
}
}
//Прогоняем список таблиц через фильтры
foreach($this->filter as $key => $value) {
$value->addTableByArray($tables);
$tables = $value->filter();
}
$this->list = $tables;
//P::_print_r($tables);
return $this->list;
}
public function addFilter(Filter $fil) {
$this->filter[] = $fil;
}
public function delFilter($key) {
unset($this->filter[$key]);
}
public function getListFilter() {
foreach($this->filter as $key => $value) {
P::_echo($value->getName());
}
}
/**
* Получаем SQL-команды создания всех таблиц
*/
private function getCreateSqlCommand() {
$string = "-- ' version ".$this->settings->getSettings(CBSettings::DBVERSION)." ' -- ' revision 11793 ' -- ' prefix ".$this->settings->getSettings(CBSettings::DBTABLE_PREFIX)." ' --";
$this->file->fwrite($string . ";".$this->delimiter);
foreach($this->list as $value) {
$sqlQuery = "SHOW CREATE TABLE " . $value;
$result = sql_query($sqlQuery);
$row = sql_fetch_assoc($result);
$tmp_c = implode("",explode("\n", strtolower($row['Create Table'])));
$this->file->fwrite($tmp_c . ";".$this->delimiter);
$this->getInsertSqlCommand($value);
}
}
private function getInsertSqlCommand($table) {
//Выбираем все строки
$sqlQuery = "SELECT * FROM " . $table;
$result = sql_query($sqlQuery);
while($row = sql_fetch_assoc($result)) {
$values = array();
foreach($row as $fields => $val) {
$values[] = is_numeric($val) ? $val : "'" . addslashes($val) . "'";
}
$insert = "insert into " . $table . " values (" . implode(', ', $values) . ")";
$this->file->fwrite($insert . ";".$this->delimiter);
}
}
public function getSQL() {
$this->file->open();
$this->getCreateSqlCommand();
$this->file->fclose();
}
}
unlink("10.03.2014.sql");
$listTable = array(1);
$filter = new DataFilter($settings, $listTable);
$backup = new DiffBackup($settings);
$backup->addFilter(new DataFilter($settings, array(1, 341)));
//$backup->addFilter(new CalendarFilter($settings));
$backup->getListTable();
$backup->getSQL();
$zip = new ZipArchive();
$res = $zip->open("test.zip", ZipArchive::OVERWRITE);
if($res === TRUE) {
$zip->addEmptyDir("files/.ext_files");
$zip->addFile("10.03.2014.sql");
$zip->close();
}
Сообщение отредактировал wondertalik: 20 Март 2014 - 18:44
Отправлено 20 Март 2014 - 14:34
Цитата
Цитата
Отправлено 20 Март 2014 - 15:23
CbCoder (20 Март 2014 - 14:34) писал:
Отправлено 20 Март 2014 - 16:00
Отправлено 20 Март 2014 - 16:03
CbCoder (20 Март 2014 - 16:00) писал:
Отправлено 20 Март 2014 - 16:24
Ошибка системы.
Error generated:
C:\Program Files (x86)\MSTL\ClientBase\www\include\functions_cron.php(1170) : sql_query()
C:\Program Files (x86)\MSTL\ClientBase\www\backup.php(401) : load_backup()
Ошибка SQL запроса:
insert into f_acc_calendars values (10, 1, 10, 1);
Duplicate entry '10' for key 'PRIMARY'
$string = "-- ' version ".$this->settings->getSettings(CBSettings::DBVERSION)." ' -- ' revision 11793 ' -- ' prefix ".$this->settings->getSettings(CBSettings::DBTABLE_PREFIX)." ' --";
Сообщение отредактировал wondertalik: 20 Март 2014 - 18:44
Отправлено 20 Март 2014 - 17:15
Цитата
Цитата
Отправлено 20 Март 2014 - 18:43
CbCoder (20 Март 2014 - 17:15) писал:
Отправлено 21 Март 2014 - 08:28
Отправлено 21 Март 2014 - 10:02
CbCoder (21 Март 2014 - 08:28) писал:
Отправлено 21 Март 2014 - 10:15
CbCoder (20 Март 2014 - 14:34) писал:
Отправлено 21 Март 2014 - 10:20
Отправлено 21 Март 2014 - 10:38
Отправлено 24 Март 2014 - 11:40
Отправлено 24 Март 2014 - 11:44
dolphin (24 Март 2014 - 11:40) писал:
Отправлено 24 Март 2014 - 13:47
Отправлено 24 Март 2014 - 13:56
0 пользователей, 2 гостей, 0 анонимных