public function execute($sql, $params = array (), array $driverOptions = array ()) {
        $this->_modifyParams($sql, $params);

        $this->_fireEvent('phpsweetpdo.execute.started',
                          array ('sql' => &$sql, 'params' => &$params, 'driver_options' => &$driverOptions));

        //Preparing and executing
        $statement = $this->_prepareStatement($sql, $params, $driverOptions);
        $this->_executeStatement($statement, $sql, $params);
        $result = $statement->rowCount();

        $this->_fireEvent('phpsweetpdo.execute.finished',
                          array ('sql'    => &$sql, 'params' => &$params, 'driver_options' => &$driverOptions,
                                 'result' => &$result));

        return $result;
    }