Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema al leer variables de archivo de configuracion desde una clase.

Estas en el tema de Problema al leer variables de archivo de configuracion desde una clase. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola tengo el siguiente problema. Tengo un archivo de configuracion en el cual guardo las variables de conexion a la base de datos. conf.php Código ...
  #1 (permalink)  
Antiguo 24/10/2006, 09:08
 
Fecha de Ingreso: julio-2005
Mensajes: 17
Antigüedad: 18 años, 9 meses
Puntos: 1
Problema al leer variables de archivo de configuracion desde una clase.

Hola tengo el siguiente problema. Tengo un archivo de configuracion en el cual guardo las variables de conexion a la base de datos.

conf.php
Código PHP:
ob_start();
$db_server "localhost";
$db "test";
$db_user "root";
$db_passwd "123"
tengo una clase en la cual incluyo el archivo conf.php y "utilizo" sus variable:

db_mysql.class.php
Código PHP:
 include("conf.php");
 class 
consultaSql{
 private 
$handle;
 public 
$db_server;
 private 
$result;
 private 
$countRecords=0;
 private 
$row_db;
 
 function 
__construct(){
   
$this->handle mysql_connect($db_server$db_user$db_passwd) or die(mysql_error());
   
mysql_select_db($db$this->handle);
 }
 
 public function 
query($sql_string){
   
$this->result mysql_query($sql_string$this->handle);
 }

 public function 
show_query(){
   
$this->row_db mysql_fetch_array($this->result);
   return 
$this->row_db;
 }

 public function 
close(){
   return 
mysql_close($this->handle);
 }

y el archivo principal

index.php
Código PHP:
include_once("db_mysql.class.php");

$db = new consultasql();

$a $db->query("SELECT * FROM usuarios");

while(
$row $db->show_query()){
echo 
$row[2];
}
$db->close(); 
el problema es que la clase no toma las variables del archivo conf.php y por supuesto no se conecta a la base de datos.

agradeceria muchisimo que me puedan ayudar.

gracias de antemano.
damian
  #2 (permalink)  
Antiguo 24/10/2006, 10:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tu problema es que necesitas una de estas dos cosas:
a) Incluir tu archivo de configuración dentro de tu constructor para que las variables sean locales en ese archivo
b) Definir esas variables como globales para que PHP las pueda leer desde el archivo que este.
  #3 (permalink)  
Antiguo 25/10/2006, 07:09
 
Fecha de Ingreso: julio-2005
Mensajes: 17
Antigüedad: 18 años, 9 meses
Puntos: 1
hola, todo sigue igual, introduci el fichero de configuracion dentro del constructor.

defini las variables como globales y me da un error ...

me dice que no estan las variables definidas para la function mysql_connection().
  #4 (permalink)  
Antiguo 25/10/2006, 08:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Cual es tu codigo? (el nuevo)
  #5 (permalink)  
Antiguo 25/10/2006, 08:44
 
Fecha de Ingreso: julio-2005
Mensajes: 17
Antigüedad: 18 años, 9 meses
Puntos: 1
este fue el codigo que modifique...

Código PHP:
 class consultaSql{
 public 
$handle;
 private 
$result;
 private 
$countRecords=0;
 private 
$row_db;
 public 
$db_server;
 public 
$db_user;
 public 
$db_passwd;
 public 
$db;
 
 function 
__construct(){
   include(
"conf.php");
   
$this->handle mysql_connect($db_server$db_user$db_passwd) or die(mysql_error());
   
mysql_select_db($db$this->handle);
 }
 
 public function 
query($sql_string){
   
$this->result mysql_query($sql_string$this->handle);
 }

 public function 
show_query(){
   
$this->row_db mysql_fetch_array($this->result);
   return 
$this->row_db;
 }

 public function 
close(){
   return 
mysql_close($this->handle);
 }

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:23.