@@ -542,7 +542,8 @@ discard block |
||
542 | 542 | $location_info = &static::$location_info[$location_type]; |
543 | 543 | $id_field = $location_info[P_ID]; |
544 | 544 | $table_name = $location_info[P_TABLE_NAME]; |
545 | - if ($result = static::db_query($q = "UPDATE {{{$table_name}}} SET {$set} WHERE `{$id_field}` = {$record_id}")) // TODO Как-то вернуть может быть LIMIT 1 ? |
|
545 | + if ($result = static::db_query($q = "UPDATE {{{$table_name}}} SET {$set} WHERE `{$id_field}` = {$record_id}")) { |
|
546 | + // TODO Как-то вернуть может быть LIMIT 1 ? |
|
546 | 547 | { |
547 | 548 | if (static::$db->db_affected_rows()) { |
548 | 549 | // Обновляем данные только если ряд был затронут |
@@ -550,6 +551,7 @@ discard block |
||
550 | 551 | |
551 | 552 | // Тут именно так, а не cache_unset - что бы в кэшах автоматически обновилась запись. Будет нужно на будущее |
552 | 553 | static::$data[$location_type][$record_id] = null; |
554 | + } |
|
553 | 555 | // Вытаскиваем обновленную запись |
554 | 556 | static::db_get_record_by_id($location_type, $record_id); |
555 | 557 | static::cache_clear($location_type, false); // Мягкий сброс - только $queries |
@@ -589,9 +591,11 @@ discard block |
||
589 | 591 | $set = trim($set); |
590 | 592 | $table_name = static::$location_info[$location_type][P_TABLE_NAME]; |
591 | 593 | if ($result = static::db_query("INSERT INTO `{{{$table_name}}}` SET {$set}")) { |
592 | - if (static::$db->db_affected_rows()) // Обновляем данные только если ряд был затронут |
|
594 | + if (static::$db->db_affected_rows()) { |
|
595 | + // Обновляем данные только если ряд был затронут |
|
593 | 596 | { |
594 | 597 | $record_id = db_insert_id(); |
598 | + } |
|
595 | 599 | // Вытаскиваем запись целиком, потому что в $set могли быть "данные по умолчанию" |
596 | 600 | $result = static::db_get_record_by_id($location_type, $record_id); |
597 | 601 | // Очищаем второстепенные кэши - потому что вставленная запись могла повлиять на результаты запросов или локация или еще чего |