/** * Substitutes multiple tokens ($values) in the WHERE $condition. * * @param string $condition * @param array $values * @return string * @throws LogicException */ protected function formatWhereConditionWithMultipleTokens($condition, array $values, EscapeValidator $validator) { if (count($values) !== substr_count($condition, '?')) { throw new LogicException("Number of given parameters does not match number of tokens"); } foreach ($values as $replacement) { $condition = preg_replace("/\\?/", '"' . $validator->check($replacement, 1) . '"', $condition, 1); } return $condition; }