From: stronk7 Date: Sat, 28 Oct 2006 17:53:00 +0000 (+0000) Subject: Moved cache cleaning code near the begin of functions. Sometimes X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=2fd40f8cbec46e8a2647f3870bf578f2b09018d2;p=moodle.git Moved cache cleaning code near the begin of functions. Sometimes it wasnt' executed due to function ending. MDL-7196 Merged from MOODLE_17_STABLE --- diff --git a/lib/dmllib.php b/lib/dmllib.php index 83b8b4d26d..7f22c52f47 100644 --- a/lib/dmllib.php +++ b/lib/dmllib.php @@ -1007,6 +1007,25 @@ function set_field($table, $newfield, $newvalue, $field1, $value1, $field2='', $ if (defined('MDL_PERFDB')) { global $PERF ; $PERF->dbqueries++; }; + // Clear record_cache based on the parameters passed (individual record or whole table) + if ($field1 == 'id') { + if (isset($record_cache[$table][$value1])) { + unset($record_cache[$table][$value1]); + } + } else if ($field2 == 'id') { + if (isset($record_cache[$table][$value2])) { + unset($record_cache[$table][$value2]); + } + } else if ($field3 == 'id') { + if (isset($record_cache[$table][$value3])) { + unset($record_cache[$table][$value3]); + } + } else { + if (isset($record_cache[$table])) { + unset($record_cache[$table]); + } + } + $select = where_clause($field1, $value1, $field2, $value2, $field3, $value3); $dataobject = new StdClass; @@ -1041,25 +1060,6 @@ function set_field($table, $newfield, $newvalue, $field1, $value1, $field2='', $ } } - // Clear record_cache based on the parameters passed (individual record or whole table) - if ($field1 == 'id') { - if (isset($record_cache[$table][$value1])) { - unset($record_cache[$table][$value1]); - } - } else if ($field2 == 'id') { - if (isset($record_cache[$table][$value2])) { - unset($record_cache[$table][$value2]); - } - } else if ($field3 == 'id') { - if (isset($record_cache[$table][$value3])) { - unset($record_cache[$table][$value3]); - } - } else { - if (isset($record_cache[$table])) { - unset($record_cache[$table]); - } - } - /// Arriving here, standard update return $db->Execute('UPDATE '. $CFG->prefix . $table .' SET '. $newfield .' = \''. $newvalue .'\' '. $select); } @@ -1122,17 +1122,17 @@ function delete_records_select($table, $select='') { global $CFG, $db, $record_cache; + // Clear record_cache (whole table) + if (isset($record_cache[$table])) { + unset($record_cache[$table]); + } + if (defined('MDL_PERFDB')) { global $PERF ; $PERF->dbqueries++; }; if ($select) { $select = 'WHERE '.$select; } - // Clear record_cache (whole table) - if (isset($record_cache[$table])) { - unset($record_cache[$table]); - } - return $db->Execute('DELETE FROM '. $CFG->prefix . $table .' '. $select); }