Tengo una base de datos postgres a la que llamo desde un programa php. (Todo en Ubuntu). Para la gestión de esta BD tengo una clase que se llama GestorBD. Utiliza el patrón singleton y crea una instancia de conexión. Cuando llamo a GestorBD desde algún otro fichero php que se encuentra en la misma carpeta, no me da ningún problema. Pero si le llamo desde otra ubicación me da el siguiente error:
Warning: include_once(./adodb/adodb.inc.php) [function.include-once]: failed to open stream: No such file or directory in /var/www/appcorrector/GestorBD.php on line 2
Warning: include_once() [function.include]: Failed opening './adodb/adodb.inc.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/appcorrector/GestorBD.php on line 2
Fatal error: Call to undefined function ADONewConnection() in /var/www/appcorrector/GestorBD.php on line 9
El fichero GestorBD es este:
Código PHP:
   <?php
include_once('./adodb/adodb.inc.php');
 
class GestorBD {
    private $conexion;   
    private static $instancia=NULL; 
 
    private function __construct() {
        $this -> conexion = &ADONewConnection('postgres'); 
        $this -> conexion->Connect('localhost:5432', 'miusu', 'mipassw', 'miBD');
    }
 
    static public function getInstance(){ 
        if (self::$instancia == NULL) {
                    self::$instancia = new GestorBD();
            }
               return self::$instancia; 
    }    
 
    public function ejecuta($consulta){
        $rs = $this -> conexion->Execute($consulta);
        return ($rs);
    }
    public function ejecutaTrans($vectorconsultas){
        $salir=false;
        $this->conexion->StartTrans();
        for($i=0; ($i<count($vectorconsultas) && !$salir); $i += 1){
            $rs=$this->conexion->Execute($vectorconsultas[$i]);
        }
        $this->conexion->CompleteTrans();
        
    }    
    
}     
?>    Código PHP:
   <?php
require('../GestorBD.php');
 
class GestorUsuarios{
    private $gbd;
 
    function __construct() {
        $this-> gbd = GestorBD::getInstance();
    }
...
 
?>    Muchas gracias y un saludo!
 
 

 
 
