Skip to main content

Aan de slag

Laravel ondersteunt officieel de volgende databases:
  • MySQL / MariaDB
  • PostgreSQL
  • SQLite
  • SQL Server
Je kunt dezelfde verbindingsconfiguratie gebruiken met rauwe SQL, de Query Builder of Eloquent ORM.
Deze pagina behandelt de basis van databaseverbindingen. Zie Query Builder voor praktische queries, Migrations voor schemabeheer en Seeding voor het inladen van initiële data.

Configuratie

De databaseconfiguratie is gecentraliseerd in config/database.php. Met default kies je de standaardverbindingsnaam en met connections definieer je de details per verbinding.
Stel in .env minimaal het volgende in:
Gebruik je SQLite, stel dan DB_CONNECTION=sqlite en het pad in DB_DATABASE in.

Lees- en schrijfverbindingen scheiden

Wil je lezen (SELECT) en schrijven (INSERT / UPDATE / DELETE) naar aparte hosts scheiden, configureer dan read en write binnen dezelfde verbinding.
Als je sticky op true zet, worden leesbewerkingen na een schrijfbewerking binnen hetzelfde request vastgezet op de write-verbinding.
In opstellingen met replica-vertraging verlaag je met sticky het risico om vlak na een schrijfbewerking verouderde data te lezen.

Pooled PostgreSQL-verbindingen

Gebruik je een managed PostgreSQL-service die connection pooling in transactiemodus biedt, zoals PgBouncer, stel dan de opties pooled en direct in.
Als je pooled inschakelt, verdeelt Laravel automatisch: Wil je in applicatiecode expliciet de directe verbinding gebruiken, voeg dan de suffix ::direct toe aan de verbindingsnaam.

Meerdere databaseverbindingen

Je kunt in config/database.php meerdere verbindingen definiëren en wisselen met DB::connection().

SQL-queries uitvoeren

De DB-facade heeft speciale methoden per type query.
Plak nooit gebruikersinvoer rechtstreeks in een SQL-string. Gebruik altijd bindingargumenten om SQL-injectie te voorkomen.

Query-listening

Wil je uitgevoerde SQL volgen, registreer dan DB::listen() in de boot() van een serviceprovider.

Transacties

Wil je meerdere updates als één geheel behandelen, gebruik dan DB::transaction(). Bij een exception voert Laravel automatisch een rollback uit.
Heb je herhaalpogingen bij deadlocks nodig, dan kun je attempts opgeven.
Wil je handmatig controle houden, gebruik dan beginTransaction / rollBack / commit.

Volgende stappen

Query Builder

Leer hoe je met de verbindingsconfiguratie veilig queries opbouwt.

Migrations

Leer hoe je het schema van je gekoppelde database onder versiebeheer houdt.

Seeding

Leer hoe je ontwikkel- en testdata op een reproduceerbare manier inlaadt.
Laatst gewijzigd op 6 september 2026