Das Objekt-Relationale-Mapping (abgekürzt OR-Mapping) stellt eine Verbindung zwischen der Datenbankwelt und der objektorientierten Welt dar. Für jegliche Art von Anwendung bietet es sich an, eine persistente Datenhaltung in einer relationalen Datenbank durchzuführen. Die Datenbank, die im PHP-Kontext hier meist genutzt wird, wurde schon vorgestellt: Es ist MySQL oder ihr Fork MariaDB. Leider muss der Entwickler einiges an Anstrengung unternehmen, um die Daten, die er innerhalb seiner Applikation erhält, in die Datenbank zu überführen. Entsprechende SQL-Befehle sind zu programmieren und mit Daten zu befüllen. Das gleiche Problem begegnet ihm, wenn er Daten aus der Datenbank in der Applikation benötigt, beispielsweise um diese dem Benutzer anzuzeigen.
Wie einfach wäre das Leben, wenn sich der Entwickler nicht um den Transfer der Daten in und von der Datenbank kümmern muss, sondern auf PHP-Seite ein schon vorbelegtes Objekt vorfindet! Genau hier setzt das OR-Mapping an. Mit Hilfe der OR-Mapping-Technologie werden die Daten, die sich innerhalb der Zeilen einer Datenbank befinden, auf Attribute von Objekten transparent übertragen und umgekehrt.
Dem im Hintergrund arbeiteten System muss jedoch mitgeteilt werden, welche Daten wohin zu transportieren sind. Dies wird mit durch eine Mappingsprache für das OR-Mapping gelöst. Das Mapping kann sich entweder innerhalb des Quellcodes der PHP-Datei selbst befinden oder kann extern in einer Konfigurationsdatei bereitgestellt werden.
Nicht nur Attribute eines einzigen Objektes können in die Datenbank übertragen werden, sondern auch Beziehungen zwischen Objekten können abgebildet werden oder Vererbungshierarchien können dargestellt werden. Hierbei gerät das Verfahren allerdings in Probleme, die händisch durch den Entwickler mit entsprechenden Anweisungen gelöst werden müssen, da die Welten der objektorientierten Programmierung und der relationalen Datenbanken Hindernisse aufweisen. Hierbei wird auch von dem ,,Object-relational Impedance Mismatch“ häufig auch nur ,,Impedance Mismatch“ gesprochen.