# Database-Komponente ###### Verwendete Libraries * **Aura.SqlQuery**: * Composer: `aura/sqlquery:2.7.*` * Packagist: https://packagist.org/packages/aura/sqlquery * GitHub: https://github.com/auraphp/Aura.SqlQuery * Docs: https://github.com/auraphp/Aura.SqlQuery/tree/2.x * **~~Aura.Sql~~** Wird in 19.4 entfernt * Composer: `aura/sql:3.*` * Packagist: https://packagist.org/packages/aura/sql * GitHub: https://github.com/auraphp/Aura.Sql * Docs: https://github.com/auraphp/Aura.Sql/blob/3.x/docs/index.md ##### Database-Komponente aus Container holen ```php $db = $container->get('Database'); ``` Im alten Bereich: ```php $db = $this->app->Container->get('Database'); ``` ## Themen * [Datensätze abrufen (fetch)](fetch_results.md) * [Datensätze abrufen mit Generatoren (yield)](yield_results.md) * [Datensätze ändern](data_manipulation.md) * [Transaktionen](transactions.md) * [Named Parameter / Prepared Statements](named_parameter.md) * [SQL Query Builder](query_builder.md) ## Exceptions Die Database-Komponente verwendet intern `mysqli`. Im Unterschied zu `mysqli` werden in Fehlerfällen aber Exceptions geworfen; z.B.: * Wenn die Verbindung zur Datenbank fehlschlägt => `ConnectionException` * Wenn ein SQL-Statement fehlerhaft ist oder aus anderen Gründen nicht erfolgreich ausgeführt werden kann => `QueryFailureException` * Wenn `Named Parameter` fehlen => `MissingParameterException` ##### ExceptionInterface Alle Exceptions die von der Database-Komponente geworfen werden implementieren das `\Xentral\Components\Database\Exception\DatabaseExceptionInterface` Interface.