php – como puedo resolver el error “Uncaught Error: Call to a member function execute()”


estoy trabajando el crud que ya tenia hecho y funcionaba en postgre , pero cambie la base de datos a mysql y no me funcionan las funciones , siguen funcionando normal e postgre pero con mysql me sale ese error , y aunque use el query() las funciones setFetchMode() y fetchAll() me sale el mismo error ” on null “

mis datos de la bd son estos

define('SERVIDOR',  'mysql');
define('HOST',      'localhost');
define('BD',        'HOD');
define('PORT',      '5432');
define('CHARSET',   'utf8');   

// MYSQL

define('USER1',         'root');
define('PASSWORD1',     '');

mi clase conexion esta

ini_set("max_execution_time", "0");
error_reporting(E_ERROR);

use PDO as pdo;

class BASE_DATOS extends PDO
{

private $servidor = SERVIDOR;

private $host     = HOST;
private $port     = PORT;
private $bd       = BD;
private $charset  = CHARSET;

private $user_mysql     = USER1;
private $password_mysql = PASSWORD1;

private $user_pgsql     = USER2;
private $password_pgsql = PASSWORD2;

private $repetir_conexion;
private $error_conexion;


public function __construct()
{
    // $conexion = NULL;

switch ($this->servidor) 
{

case 'mysql':

    $opciones = array(
        PDO::ATTR_ERRMODE          => PDO::ERRMODE_EXCEPTION,            
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_PERSISTENT       => true,
        PDO::ATTR_EMULATE_PREPARES => false,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES  'UTF8''
    );
        try 
    {
        $conexion = parent::__construct(
            "$this->servidor:
                host       =   $this->host     ;
                port       =   $this->port     ;
                dbname     =   $this->bd       ;
                user       =   $this->user_mysql     ;
                password   =   $this->password_mysql ;
            "
        );
        parent::setAttribute($opciones);

        $this->repetir_conexion = true;
        $this->error_conexion   = "";
        $this->comprobar = "Conexion Exitosa";

        return $conexion;

    } catch (PDOException $e) {
        $this->error_conexion = 'Ha surgido un error y no se puede conectar a la base de datos. Detalle: ' . $e->getMessage();
        $this->comprobar = "Conexion Fallida !";  
        return $conexion;    
    }
        break;

    case 'pgsql':

    $opciones = (
        PDO::ATTR_PERSISTENT       => true,
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_EMULATE_PREPARES   => false,
    );
       try 
    {
        $conexion = parent::__construct(
            "$this->servidor:
                host       =   $this->host     ;
                port       =   $this->port     ;
                dbname     =   $this->bd       ;  
                user       =   $this->user_pgsql     ;
                password   =   $this->password_pgsql ;
            "
        );
        parent::setAttribute($opciones);
        $this->repetir_conexion = true;
        $this->error_conexion   = "";
        $this->comprobar = "Conexion Exitosa";

        return $conexion; 

    } catch (PDOException $e) {
        $this->error_conexion = 'Ha surgido un error y no se puede conectar a la base de datos. Detalle: ' . $e->getMessage();
        $this->comprobar = "Conexion Fallida !";  
        return $conexion;    
    }
        break;
    
    default:
        echo "ERROR! El Gestor De Base De Datos No Es Reconocido";
        break;
}

}

public function Probar_Conexion()
{return $this->comprobar;}

public function getRepetir_Conexion()
{return $this->repetir_conexion;}

public function getError_Conexion()
{return $this->error_conexion;}

}

y mi codigo de consulta es este , aun no he intentado el insert o el update por que no he avanzado con el la consulta , y la mayor parte de las tablas son relacionadas por eso de tener la consulta lista

class Modelo

{

public function __construct()
{
    $this->conexion = new BASE_DATOS(); 
}

public function Cerrar_BD()
{
    return $this->conexion->close();
}

}

y esta es la clase donde esta la funcio consulta

  class Secciones_Class extends Modelo {  

private $trayecto;
private $nombre;
private $anio; 

public function setSeccion($trayecto, $nombre, $anio)
{
    $this->trayecto = $trayecto;
    $this->nombre   = $nombre;
    $this->anio     = $anio;
}
public function getTracyecto()
{
    return $this->trayecto;
}

public function getNombre()
{
    return $this->nombre;
}

public function getAnio()
{
    return $this->anio;
}
function __construct() {
    parent::__construct(); 
}


function Trayecto () {

    $tabla            = "SELECT * FROM trayecto ORDER BY idtrayecto ASC";
    $respuestaArreglo = '';
    try { 
        $datos = $this->conexion->prepare($tabla);
         $datos->execute();
         $datos->setFetchMode(PDO::FETCH_ASSOC);
        $respuestaArreglo = $datos->fetchAll(PDO::FETCH_ASSOC);
        return $respuestaArreglo;
    } catch (PDOException $e) {

        $errorReturn = ('estatus' => false);
        $errorReturn += ('info' => "error sql:{$e}");
        return $errorReturn;
    }
}  

}