Erwägungen:
1.
Der Beschwerdeführer betreibt die Beschwerdegegnerin für Fr. 3'000.-- (Betreibung Nr. xxx des Betreibungsamtes U._). Mit Urteil vom 15. November 2021 wies das Bezirksgericht Affoltern das Rechtsöffnungsgesuch des Beschwerdeführers ab.
Dagegen erhob der Beschwerdeführer am 24. November 2021 Beschwerde. Mit Beschluss vom 8. Dezember 2021 trat das Obergericht des Kantons Zürich auf die Beschwerde mangels genügender Begründung nicht ein.
Dagegen hat der Beschwerdeführer am 5. Januar 2022 (Postaufgabe) Beschwerde an das Bundesgericht erhoben.
2.
Der Beschwerdeführer hat die Beschwerde zulässigerweise auf Französisch verfasst (<ref-law>). Der vorliegende Entscheid ergeht jedoch in der Sprache des angefochtenen Beschlusses und damit auf Deutsch (<ref-law>).
3.
Aufgrund des unter Fr. 30'000.-- liegenden Streitwerts (<ref-law>) und mangels Vorliegens einer Rechtsfrage von grundsätzlicher Bedeutung (<ref-law>) ist die Eingabe als subsidiäre Verfassungsbeschwerde zu behandeln (<ref-law>).
Der Beschluss des Obergerichts ist ein Nichteintretensentscheid. Thema des bundesgerichtlichen Verfahrens ist demnach einzig, ob das Obergericht gegen verfassungsmässige Rechte verstossen hat, indem es auf die kantonale Beschwerde nicht eingetreten ist. Diesbezüglich müsste der Beschwerdeführer anhand der Erwägungen des angefochtenen Entscheids klar und detailliert darlegen, inwiefern verfassungsmässige Rechte verletzt worden sein sollen (Art. 117 i.V.m. <ref-law>; <ref-ruling> E. 3.1 S. 399; <ref-ruling> E. 2.4 S. 368). Der Beschwerdeführer macht zwar geltend, es genüge, wenn er die vor der ersten Instanz vorgebrachten Argumente wiederholt habe. Er legt jedoch nicht dar, weshalb das Obergericht mit seinen gegenteiligen Erwägungen gegen verfassungsmässige Rechte verstossen haben soll. Im Übrigen schildert er, weshalb ihm der in Betreibung gesetzte Betrag zustehe. Dabei verkennt er nach wie vor die Natur des Rechtsöffnungsverfahrens bzw. die Anforderungen, die an einen Rechtsöffnungstitel gestellt werden. Auch mit den diesbezüglichen Erwägungen des Obergericht befasst er sich nicht.
Die Beschwerde enthält offensichtlich keine hinreichende Begründung. Auf sie ist im vereinfachten Verfahren durch das präsidierende Mitglied der Abteilung nicht einzutreten (Art. 117 i.V.m. <ref-law>).
4.
Bei diesem Ausgang des Verfahrens trägt der Beschwerdeführer die Gerichtskosten (<ref-law>).

Demnach erkennt das präsidierende Mitglied:
1.
Auf die Verfassungsbeschwerde wird nicht eingetreten.
2.
Die Gerichtskosten von Fr. 500.-- werden dem Beschwerdeführer auferlegt.
3.
Dieses Urteil wird den Parteien und dem Obergericht des Kantons Zürich, I. Zivilkammer, mitgeteilt.
Lausanne, 20. Januar 2022
Im Namen der II. zivilrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Das präsidierende Mitglied: Escher
Der Gerichtsschreiber: Zingg