/** * Creates a new DatabaseException. * * @param string $message error message * @param Database $db affected db object * @param PreparedStatement $preparedStatement affected prepared statement */ public function __construct($message, Database $db, PreparedStatement $preparedStatement = null) { $this->db = $db; $this->DBType = $db->getDBType(); $this->preparedStatement = $preparedStatement; // prefer errors from prepared statement if ($this->preparedStatement !== null && $this->preparedStatement->getErrorNumber()) { $this->errorNumber = $this->preparedStatement->getErrorNumber(); $this->errorDesc = $this->preparedStatement->getErrorDesc(); } else { $this->errorNumber = $this->db->getErrorNumber(); $this->errorDesc = $this->db->getErrorDesc(); } parent::__construct($message, intval($this->errorNumber)); }