protected function quote($value)
    {
        if ($value === null) {
            return 'NULL';
        }

        if (is_array($value)) {
            return join(', ', array_map([$this, 'quote'], $value));
        }

        return is_string($value)
            ? ('"' . $this->server->real_escape_string($value) . '"')
            : (is_float($value) ? (float)$value : (int)$value);
    }