moin Community,
ich habe Probleme beim unstellen von \PDO::FETCH_BOTH (ich nehme an standard) zu \PDO::FETCH_OBJ Konstanten in meiner Database-Klasse.
Es geht wahrscheinlich um die Methode $this->getAttributs(). In ihr sind alle Konstanten in einer privaten Property Array $this->attributsenthalten sind, wie \PDO::ERRMODE_SILENT, \PDO::CASE_LOWER mit \PDO::FETCH_OBJ:
Die transmission()-Methode sorgt für die Erzeugung und trennen der Verbindung, das Landen der Attribut-Konstanten und Verschichten der Prepared Statements und Empfangen des Results.
private function transmission( callable $cargo, string $query, array $params = [] ) {
$this->connect();
$this->getAttribute();
try {
$statement = $this->handler->prepare( $query );
$statement->execute( $params );
$result = $cargo( $statement );
} catch( PDOException $e ) {
/** @ToDo Exception */
}
$this->disconnect();
return $result;
}
Die Methode transmission() wird von einer der öffentlichen Methoden wie getAll() aufgerufen.
public function getAll( string $query, array $params = [] ) : array {
return $this->transmission( function( $statement ) {
return $statement->fetchAll();
}, $query, $params );
}
selbst wenn ich in dieser getAll()-Methode, das Statement, das zuvor das Prepared Statement an die Datenbank geschickt hat, fetchAll() zusätzlich \PDO::FETCH_OBJ noitiere, gibt das Statement Objekt als $resultnur Daten in Form von \PDO::FETCH_BOTH zurück 😕. Ich bin echt Überfragt wo das Problem istr und wie ich es lösen damit vom Standart \PDO::FETCH_BOTH wieder z.B. \PDO::FETCH_OBJ wird?.
vlg MB