Code Duplication    Length = 16-19 lines in 4 locations

engine/classes/Elgg/Database/PrivateSettingsTable.php 2 locations

@@ 165-180 (lines=16) @@
162
163
		// get names wheres
164
		$names_where = '';
165
		if ($names !== null) {
166
			if (!is_array($names)) {
167
				$names = [$names];
168
			}
169
170
			$sanitised_names = [];
171
			foreach ($names as $name) {
172
				$name = $name_prefix . $name;
173
				$sanitised_names[] = '\'' . $this->db->sanitizeString($name) . '\'';
174
			}
175
176
			$names_str = implode(',', $sanitised_names);
177
			if ($names_str) {
178
				$names_where = "(ps.name IN ($names_str))";
179
			}
180
		}
181
182
		// get values wheres
183
		$values_where = '';
@@ 184-202 (lines=19) @@
181
182
		// get values wheres
183
		$values_where = '';
184
		if ($values !== null) {
185
			if (!is_array($values)) {
186
				$values = [$values];
187
			}
188
189
			$sanitised_values = [];
190
			foreach ($values as $value) {
191
				// normalize to 0
192
				if (!$value) {
193
					$value = 0;
194
				}
195
				$sanitised_values[] = '\'' . $this->db->sanitizeString($value) . '\'';
196
			}
197
198
			$values_str = implode(',', $sanitised_values);
199
			if ($values_str) {
200
				$values_where = "(ps.value IN ($values_str))";
201
			}
202
		}
203
204
		if ($names_where && $values_where) {
205
			$wheres[] = "($names_where AND $values_where)";

engine/classes/Elgg/Database/MetadataTable.php 2 locations

@@ 453-470 (lines=18) @@
450
451
		// get names wheres and joins
452
		$names_where = '';
453
		if ($names !== null) {
454
			if (!is_array($names)) {
455
				$names = [$names];
456
			}
457
458
			$sanitised_names = [];
459
			foreach ($names as $name) {
460
				// normalise to 0.
461
				if (!$name) {
462
					$name = '0';
463
				}
464
				$sanitised_names[] = '\'' . $this->db->sanitizeString($name) . '\'';
465
			}
466
467
			if ($names_str = implode(',', $sanitised_names)) {
468
				$names_where = "(n_table.name IN ($names_str))";
469
			}
470
		}
471
472
		// get values wheres and joins
473
		$values_where = '';
@@ 474-491 (lines=18) @@
471
472
		// get values wheres and joins
473
		$values_where = '';
474
		if ($values !== null) {
475
			if (!is_array($values)) {
476
				$values = [$values];
477
			}
478
479
			$sanitised_values = [];
480
			foreach ($values as $value) {
481
				// normalize to 0
482
				if (!$value) {
483
					$value = 0;
484
				}
485
				$sanitised_values[] = '\'' . $this->db->sanitizeString($value) . '\'';
486
			}
487
488
			if ($values_str = implode(',', $sanitised_values)) {
489
				$values_where = "({$binary}n_table.value IN ($values_str))";
490
			}
491
		}
492
493
		if ($names_where && $values_where) {
494
			$wheres[] = "($names_where AND $values_where)";