Aloha,
ich lese da ein "self::prepare".
Das heißt für mich, dass du in einer Klasse, in der das PDO Objekt steckt, die SQL Statements zusammenbauen willst. Ich hab ein paar Regeln beim Programmieren. Eine Davon ist "Trennung der Anliegen".
Ich habe selbst eine PDO Klasse, die ein paar mehr Funktionen bereit hält als das php übliche PDO selbst. So z.B. query( $query, $data ). Das ist die Schnittstelle an der das prepare und execute passiert + Fehlerbehandlung.
Der $query kann entweder ein String sein oder es wird ein Objekt "Query_Builder" übergeben. Dieser hilft mir beim bilden eines Querys. Da kann man z.b. einen Select hinzufügen select( $select, $alias) oder man fügt ein where() hinzu. Diese Dinge Select, Where oder was auch immer können wiederum Objekte sein. Am Ende bekomme ich vom Query_Builder ein fertiges Query getQuery().
Was ich dir damit zeigen möchte ist, dass ich ein großes Thema in viele kleine Bausteine zerlegt habe. Die sind leichter zu verstehen und zu testen. Vor allem kann man diese sehr leicht in UnitTests packen.
Datenbankfelder kannst du dann über "echte" Models definieren ... aber da wurde dir ja schon geholfen.
Deswegen, hab keine Angst neue und vor allem kleine Klassen an zu legen. Teile und Herrsche !
Gruß
T-eilender allein Herrscher Rex