dedlfix: Kann nicht bei PDO Attributen vorab defiunierte Klassen fetchen

Beitrag lesen

Tach!

ich hab versucht in den PDO Attributen das Attribut PDO::ATTR_DEFAULT_FETCH_MODE mit PDO::FETCH_CLASS zu modifizieren. Aber ich weis nichtr wie ich zusätzlich noch die defeniertte Klasse in dieses PDO Attribut hinein verfrachten kann :/.

Ich sehe keinen Sinn darin, eine Default-Klasse für die gesamte Verbindung anzugeben. Das haben sich die PDO-Erfinder wohl auch so gedacht und haben PDOStatement::setFetchMode() eingebaut, denn was man da als Klasse haben möchte, ist ja abhängig vom konkreten Statement.

Ich habs dann so gemacht…

public static function fetchClass( $class ) : void {
  self::$_attributes = [
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_CLASS | $class
  ];
}

…mit kläglichem Ergebnis…

Was soll auch dabei rauskommen, wenn du einen Integerwert und einen Klassennamen mit einem bitweisen Oder verknüpfst?

PS: neben bei gefragt: wie kann man eigentlich Klassen als Typ spezifizieren?

Bitte? Eine Klasse ist ein Typ. Meinst du vielleicht, wie man einen Klassennamen als Parameter übergeben kann? Also da die Funktion einen String haben möchte, wie man aus einer Klasse deren Namen als String bekommt? Das wäre ::class.

dedlfix.