public function callback($m)
{
$m = $m[0];
if ($m[0] === '?') {
// placeholder
if ($this->counter >= count($this->params)) {
throw new Nette\InvalidArgumentException('There are more placeholders than passed parameters.');
}
return $this->formatValue($this->params[$this->counter++], substr($m, 1) ?: 'auto');
} elseif ($m[0] === "'" || $m[0] === '"' || $m[0] === '/' || $m[0] === '-') {
// string or comment
return $m;
} else {
// command
static $modes = ['INSERT' => 'values', 'REPLACE' => 'values', 'KEY UPDATE' => 'set', 'SET' => 'set', 'WHERE' => 'and', 'HAVING' => 'and', 'ORDER BY' => 'order', 'GROUP BY' => 'order'];
$this->arrayMode = $modes[ltrim(strtoupper($m))];
return $m;
}
}