234
237
protected function log() {
235
238
if (isset($this->_snapshot)) {return false;}
236
240
$db = Database::getInstance();
237
241
$database = $db->getDatabase();
242
$record = Board::select($db->encapsulate("board") . ".mdate as fdate,null as tdate,{$db->encapsulate("board")}.*",null,$db->encapsulate("board").".id={$this->id}")->first();
238
243
$log = "{$database}_log";
239
$db->changeDatabase($log);
244
$dbLog = Database::getInstance(null,null,null,null,$log);
245
foreach($record as $k=>$v){
247
$record[$k] = $dbLog->queryValue($v);
250
$insertColumns = $dbLog->le.implode("{$dbLog->le},{$dbLog->re}",array_keys($record)).$dbLog->re;
251
$insertValues = implode(",",$record);
240
252
$query = implode(NL, array(
241
"INSERT INTO {$db->le}{$log}{$db->re}.{$db->le}board{$db->re} (",
244
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}mdate{$db->re},",
246
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}id{$db->re},",
247
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}name{$db->re},",
248
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}description{$db->re},",
249
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}views{$db->re},",
250
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}updated_by_id{$db->re},",
251
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}mdate{$db->re},",
252
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}cdate{$db->re},",
253
" {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}deleted{$db->re}",
254
"FROM {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}",
255
"WHERE {$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}id{$db->re}={$db->queryValue($this->id)}",
253
"INSERT INTO {$dbLog->le}board{$dbLog->re} (",
258
$status = $db->query($query);
260
$logSequence = $db->getInsertedId();
262
$query = implode(NL, array(
263
"SELECT {$db->le}log_sequence{$db->re}",
264
"FROM {$db->le}board{$db->re}",
265
"WHERE {$db->le}board{$db->re}.{$db->le}id{$db->re}={$db->queryValue($this->id)}",
266
" AND {$db->le}log_sequence{$db->re}<'{$logSequence}'",
267
"ORDER BY {$db->le}log_sequence{$db->re} DESC",
272
if ($db->getRecord()) {
273
$updateSequence = (int)$db->record["log_sequence"];
259
$status = $dbLog->query($query);
261
$logSequence = $dbLog->getInsertedId();
274
264
$query = implode(NL, array(
275
"UPDATE {$db->le}{$log}{$db->re}.{$db->le}board{$db->re}",
276
"INNER JOIN {$db->le}{$database}{$db->re}.{$db->le}board{$db->re} ON {$db->le}{$log}{$db->re}.{$db->le}board{$db->re}.{$db->le}id{$db->re}={$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}id{$db->re}",
277
" AND {$db->le}{$log}{$db->re}.{$db->le}board{$db->re}.{$db->le}log_sequence{$db->re}={$db->queryValue($updateSequence)}",
278
"SET {$db->le}{$log}{$db->re}.{$db->le}board{$db->re}.{$db->le}tdate{$db->re}={$db->le}{$database}{$db->re}.{$db->le}board{$db->re}.{$db->le}mdate{$db->re}"
265
"SELECT {$dbLog->le}log_sequence{$dbLog->re}",
266
"FROM {$dbLog->le}board{$dbLog->re}",
267
"WHERE {$dbLog->le}board{$dbLog->re}.{$dbLog->le}id{$dbLog->re}={$this->id}",
268
" AND {$dbLog->le}log_sequence{$dbLog->re}<{$logSequence}",
269
"ORDER BY {$dbLog->le}log_sequence{$dbLog->re} DESC",
270
$dbLog::limitOffsetString(1,0)
272
$dbLog->query($query);
274
if ($dbLog->getRecord()) {
275
$updateSequence = (int)$dbLog->record["log_sequence"];
276
$query = implode(NL, array(
277
"UPDATE {$dbLog->le}board{$dbLog->re}",
278
"SET {$dbLog->le}tdate{$dbLog->re}={$record["mdate"]}",
279
"where log_sequence={$updateSequence}"
281
$dbLog->query($query);
282
284
$db->changeDatabase($database);