La verdad estaría bueno que simplificaras la exposición, ya que uno a veces anda cansado y no le da el cerebro para hacer todo el seguimiento y ejecutar el código (faltaría más).
Si no te tomas el tiempo para simplificar tu propio problema, mucho menos alguien se tomará el tiempo para entender y contestar el problema de otro.
Por lo pronto te digo:
- El código no es igual, ya que uno da error y el otro no (aunque te suene a tontería, es parte del testing tener claro estos conceptos)
- ¿En qué línea exacta te da el error?
- ¿cuales son las líneas de código que dan error?
- Revisa el diseño, decide si Capa_datos es de "tipo" PDO o Persistencia, de ser así, ahí deberías hacer una herencia.
Anexo
- Elimina los atributos globales
- Estás creando una nueva conexión cada vez que quieres hacer algo, solo crea en el constructor una vez y luego solicita la conexión existente
- Usa nomenclatura estándar, usa camelcase