_statement instanceof BufferedStatement) { $this->_statement = $this->_statement->getInnerStatement(); } if ($this->_bufferResults) { $this->_statement = new BufferedStatement($this->_statement, $this->_driver); } return $this->_statement->execute($params); } /** * Returns the number of rows returned of affected by last execution * * @return int */ public function rowCount(): int { /** @psalm-suppress NoInterfaceProperties */ if ( $this->_statement->queryString && preg_match('/^(?:DELETE|UPDATE|INSERT)/i', $this->_statement->queryString) ) { $changes = $this->_driver->prepare('SELECT CHANGES()'); $changes->execute(); $row = $changes->fetch(); $changes->closeCursor(); if (!$row) { return 0; } return (int)$row[0]; } return parent::rowCount(); } }