public function bindValue($param, $value, $type = null)
    {

        if (is_numeric($param)) {
            $param--;
        }

        switch($type){

            case \PDO::PARAM_BOOL:
            case \PDO::PARAM_INPUT_OUTPUT:
            case \PDO::PARAM_INT:
            case \PDO::PARAM_LOB:
            case \PDO::PARAM_NULL:
            case \PDO::PARAM_STMT:
            case \PDO::PARAM_STR:
                $this->boundValues[] = [(string)$value, $param, $type];
                break;

            default:
                throw new Exception("Invalid data-type '{$type}'! Must be one of \PDO::PARAM_* constants.");
        }
    }