public function set($name, $value = null)
    {
        if (is_array($name)) {
            foreach ($name as $value) {
                ValueValidator::validate($value);
            }
            $this->_values = $name;
        } else {
            if (is_int($name) || is_string($name)) {
                $this->_values[(string) $name] = $value;
                ValueValidator::validate($value);
            } else {
                throw new ClientException('Bind variable name should be string or int');
            }
        }
    }