Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2010, 09:23
juliogonzalezsv
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Imposible inicializar objetos y llamar metodos en PHP5 usando require_once()

Estimados, estoy comenzando a desarrollar una aplicación en php5 para control de capacitaciones. Estoy utilizando Apache2.2, PHP 5.3.3, PostgreSQL 8.4 y Windows Vista Business.

El problema es el siguiente:

Al intentar hacer la conexión con la base de datos utilizando una clase llamada 'conexion' almacenada en el archivo 'conexion.php' y llamándola en el archivo 'prueba.php' donde estoy tratando de ver los resultados de la consulta, me es imposible inicializar un objeto 'conexion'. En el navegador me aparece el siguiente error: "Fatal error: Class 'conexion' not found in C:\Apache2.2\htdocs\sistema_capacitaciones\prueba. php on line 31"
por lo cual entiendo que no se ha incluido el archivo donde está definida la clase.

El código del archivo 'conexion.php' es el siguiente:

<?
class conexion{
function conectar(){
$conex = pg_connect("host=localhost dbname=capacitaciones user=nombre_usuario password=*****")
or die('No pudo conectarse: ' . pg_last_error());
return $conex;
}
}
?>

Y el código del archivo donde quiero probar los resultados ('prueba.php') es el siguiente:

<?php

include_once('./conexion.php');

$conexion = new conexion();
$conn=$conexion->conectar();
$consulta="SELECT usuario, password, perfil, id_departamental FROM usuarios";
$resultado = pg_query($conn, $consulta) or die ('consulta fallida:'.pg_last_error());
if(pg_num_rows($resultado)>0)
{
while ($row = pg_fetch_array($resultado))
{
echo $row['usuario'];
echo $row['perfil'];
echo $row['id_departamental'];
}
}
else
{
echo "No se encontraron datos";
}
?>


Los dos archivos están ubicados en la misma carpeta. Creo que el error es que no está incluyendo el archivo, pero no sé porqué; ya que al colocar directamente el código donde se define la clase conexion en el archivo de prueba, en efecto muestra los resultados deseados; pero no quiero hacerlo así ya que estaré utilizando más funciones definidas en otras clases y me dará mucho problema no poder incluirlas.

Muchas gracias por su ayuda