From db3a6216cc287aac07499e656a1493fe3982e6c8 Mon Sep 17 00:00:00 2001 From: liorgi Date: Sun, 10 Apr 2016 10:35:56 +0300 Subject: [PATCH] MDL-48089 mod_forum: Improve DB query in observer --- mod/forum/classes/observer.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mod/forum/classes/observer.php b/mod/forum/classes/observer.php index cc43934ef7e..adfb4325252 100644 --- a/mod/forum/classes/observer.php +++ b/mod/forum/classes/observer.php @@ -41,8 +41,11 @@ class mod_forum_observer { // Get user enrolment info from event. $cp = (object)$event->other['userenrolment']; if ($cp->lastenrol) { - $params = array('userid' => $cp->userid, 'courseid' => $cp->courseid); - $forumselect = "IN (SELECT f.id FROM {forum} f WHERE f.course = :courseid)"; + if (!$forums = $DB->get_records('forum', array('course' => $cp->courseid), '', 'id')) { + return; + } + list($forumselect, $params) = $DB->get_in_or_equal(array_keys($forums), SQL_PARAMS_NAMED); + $params['userid'] = $cp->userid; $DB->delete_records_select('forum_digests', 'userid = :userid AND forum '.$forumselect, $params); $DB->delete_records_select('forum_subscriptions', 'userid = :userid AND forum '.$forumselect, $params);