A database access layer providing a uniform method of access to multiple databases. Low-level database access across multiple database types.
Low-level database access across multiple database types.
Supports multiple database drivers | Prepared statements enhance security | Exception handling for database errors
More boilerplate code compared to ORMs | Lacks advanced ORM features