public function addNamedPlaceholderValue(string $placeholderName, $value, int $dataType = PDO::PARAM_STR) : self
    {
        if ($this->usingUnnamedPlaceholders === true) {
            throw new InvalidQueryException('Cannot mix unnamed placeholders with named placeholders');
        }

        $this->usingUnnamedPlaceholders = false;
        $this->parameters[$placeholderName] = [$value, $dataType];

        return $this;
    }