OpenXE/classes/Components/Database/docs/index.md
2021-05-21 08:49:41 +02:00

52 lines
1.6 KiB
Markdown

# 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.