Hola a todos! Me pasa una cosa muy curiosa y por más vueltas que le doy no encuentro la solución.
Utilizo Xampp + php + PEAR.
Me he creado una libreria que se llama libreriaSQL.php que utiliza funciones PEAR para poder acceder a la BD. Un ejemplo de código de esta libreria es:
Código PHP:
require_once 'DB.php';
Function connectBD($sgbd='mysql', $user='root', $server='localhost', $database='prueba')
{
//CREO CADENA DE CONEXION
$dsn = array(
'phptype' => $sgbd,
'username' => $user,
'hostspec' => $server,
'database' => $database,
);
//ME CONECTO
$dbh = DB::connect($dsn);
ECHO $dbh;
//COMPRUEBO SI HA HABIDO UN ERROR DE CONEXION
if (PEAR::isError($dbh))
die($db->getMessage());
return $dbh;
}
Y luego tengo un archivo que utiliza esa libreria "prueba.php"
Código PHP:
include("libreriaSQL.php");
$db=connectBD('mysql','root', 'localhost', 'NombredemiBd');
Si tengo esa libreria (libreriaSQL.php)y ese archivo ("prueba.php")en : "Xampp\htdocs\" funciona perfectamente.
En el momento que traslado esos dos archivos a una subcarpeta, por ejemplo.
El archivo prueba.php lo tengo en: Xampp\htdocs\miWeb\prueba.php con el siguiente codigo.
Código PHP:
include("librerias/sql/libreriaSQL.php");
$db=connectBD('mysql','root', 'localhost', 'NombredemiBd');
Y la libreria la tengo en: Xampp\htdocs\miWeb\librerias\sql\libreriaSQL.php
Al ejecutar la web me sale el siguiente error:
DB Error: not found
Fatal error: Call to a member function getMessage() on a non-objec.
He pensado que podria ser problema de la configuración del php, asi que me he ido a php.ini y he cambiado esta linea.
include_path = ".;F:\xampp\php\PEAR"
por esta
include_path = ".;F:\xampp\htdocs\miWeb\librerias\sql\PEAR"
Pero sigue saliendo el mismo error, el código de los dos archivos es el mismo, lo único que cambia son las rutas.
Alguna idea?
Gracias de antemano!