public static function db_changeset_apply($db_changeset, $flush_delayed = false) { $result = true; if (!is_array($db_changeset) || empty($db_changeset)) { return $result; } foreach ($db_changeset as $table_name => &$table_data) { // TODO - delayed changeset /* if(static::db_transaction_check(false) && !$flush_delayed && ($table_name == 'users' || $table_name == 'planets' || $table_name == 'unit')) { static::db_changeset_delay($table_name, $table_data); continue; } */ foreach ($table_data as $record_id => &$conditions) { static::db_changeset_condition_compile($conditions, $table_name); if ($conditions['action'] != SQL_OP_DELETE && !$conditions[P_FIELDS_STR]) { continue; } if ($conditions['action'] == SQL_OP_DELETE && !$conditions[P_WHERE_STR]) { continue; } // Защита от случайного удаления всех данных в таблице if ($conditions[P_LOCATION] != LOC_NONE) { //die('spec ops supernova.php line 928 Добавить работу с кэшем юнитов итд'); switch ($conditions['action']) { case SQL_OP_DELETE: $result = classSupernova::db_del_record_list($conditions[P_LOCATION], $conditions[P_WHERE_STR]) && $result; break; case SQL_OP_UPDATE: $result = classSupernova::db_upd_record_list($conditions[P_LOCATION], $conditions[P_WHERE_STR], $conditions[P_FIELDS_STR]) && $result; break; case SQL_OP_INSERT: $result = classSupernova::db_ins_record($conditions[P_LOCATION], $conditions[P_FIELDS_STR]) && $result; break; default: die('Неподдерживаемая операция в classSupernova::db_changeset_apply'); // case SQL_OP_REPLACE: $result = $result && doquery("REPLACE INTO {{{$table_name}}} SET {$fields}"); break; } } else { $result = doquery($conditions[P_QUERY_STR]) && $result; } } } return $result; }
function db_planet_set_by_owner($ui_owner_id, $ss_set) { //if(!($si_owner_id = intval($ui_owner_id)) || !($ss_set = trim($ss_set))) return false; if (!($si_owner_id = idval($ui_owner_id)) || !($ss_set = trim($ss_set))) { return false; } return classSupernova::db_upd_record_list(LOC_PLANET, "`id_owner` = {$si_owner_id}", $ss_set); }
function db_user_list_set_ally_deprecated_convert_ranks($ally_id, $i, $rank_id) { return classSupernova::db_upd_record_list(LOC_USER, "`ally_id` = {$ally_id} AND `ally_rank_id`={$rank_id}", "`ally_rank_id` = {$i}"); }