MDL-26987 fix invalid DML syntax in spam cleaner tool

This commit is contained in:
Petr Skoda 2011-03-27 16:14:22 +02:00
parent 92a387b467
commit d38f419d5c

View file

@ -151,19 +151,21 @@ function search_spammers($keywords) {
$params = array('userid'=>$USER->id); $params = array('userid'=>$USER->id);
$keywordfull = array(); $keywordfull = array();
$i = 0;
foreach ($keywords as $keyword) { foreach ($keywords as $keyword) {
$keywordfull[] = $DB->sql_like('description', ':descpat', false); $keywordfull[] = $DB->sql_like('description', ':descpat'.$i, false);
$params['descpat'] = "%$keyword%"; $params['descpat'.$i] = "%$keyword%";
$keywordfull2[] = $DB->sql_like('p.summary', ':sumpat', false); $keywordfull2[] = $DB->sql_like('p.summary', ':sumpat'.$i, false);
$params['sumpat'] = "%$keyword%"; $params['sumpat'.$i] = "%$keyword%";
$i++;
} }
$conditions = '( '.implode(' OR ', $keywordfull).' )'; $conditions = '( '.implode(' OR ', $keywordfull).' )';
$conditions2 = '( '.implode(' OR ', $keywordfull2).' )'; $conditions2 = '( '.implode(' OR ', $keywordfull2).' )';
$sql = "SELECT * FROM {user} WHERE deleted = 0 AND id <> :userid AND $conditions"; // Exclude oneself $sql = "SELECT * FROM {user} WHERE deleted = 0 AND id <> :userid AND $conditions"; // Exclude oneself
$sql2 = "SELECT u.*, p.summary FROM {user} AS u, {post} AS p WHERE $conditions2 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid"; $sql2 = "SELECT u.*, p.summary FROM {user} AS u, {post} AS p WHERE $conditions2 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$spamusers_desc = $DB->get_recordset_sql($sql); $spamusers_desc = $DB->get_recordset_sql($sql, $params);
$spamusers_blog = $DB->get_recordset_sql($sql2); $spamusers_blog = $DB->get_recordset_sql($sql2, $params);
$keywordlist = implode(', ', $keywords); $keywordlist = implode(', ', $keywords);
echo $OUTPUT->box(get_string('spamresult', 'report_spamcleaner').s($keywordlist)).' ...'; echo $OUTPUT->box(get_string('spamresult', 'report_spamcleaner').s($keywordlist)).' ...';