Foros del Web » Programando para Internet » PHP »

Problema con variables y clase conexión DB

Estas en el tema de Problema con variables y clase conexión DB en el foro de PHP en Foros del Web. Hola, Tengo una clase llamada conexión: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original class conexion {                 var $host ...
  #1 (permalink)  
Antiguo 09/04/2012, 19:18
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Problema con variables y clase conexión DB

Hola,

Tengo una clase llamada conexión:

Código PHP:
Ver original
  1. class conexion {
  2.        
  3.         var $host;
  4.         var $nombredb;
  5.         var $usuariodb;
  6.         var $contrasenadb;
  7.        
  8.         public function conexion() {
  9.            
  10.             $this->host = "localhost";
  11.             $this->nombredb = "plantilla";
  12.             $this->usuariodb = "root";
  13.             $this->contrasenadb = "****";
  14.            
  15.             if(!isset($this->conexion)) {
  16.                 $this->conexion = mysql_connect($this->host,$this->usuariodb,$this->contrasenadb) or die(mysql_error());
  17.                 mysql_select_db($this->nombredb,$this->conexion) or die(mysql_error());
  18.             }
  19.            
  20.         } // Fin función conexion

Y un archivo config.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     /**
  4.      * Rutas absolutas y relativas
  5.      */
  6.    
  7.     define("ABSPROTECMS","/var/www/vhosts/protecms.dev/httpdocs/");
  8.     define("ABS","/var/www/vhosts/protecms.dev/httpdocs/webs/plantilla/");
  9.     define("INCLUDES","/var/www/vhosts/protecms.dev/httpdocs/includes/");
  10.     define("CSSADMIN","/var/www/vhosts/protecms.dev/httpdocs/");
  11.     $host = "localhost";
  12.     $usuariodb = "root";
  13.     $contrasenadb = "****";
  14.     $nombredb = "plantilla";
  15.     /**
  16.      * Datos de acceso a la base de datos
  17.      */
  18.     include(INCLUDES. "class.conexion.php");
  19.    
  20.     $db = new conexion($host,$nombredb,$usuariodb,$contrasenadb);
  21.        
  22. ?>

Y un archivo test.php:

Código PHP:
Ver original
  1. include("config.php");
  2.  
  3.     $consulta = $db->consulta("SELECT * FROM prueba");
  4.    
  5.     if($db->num_rows($consulta)>0) {
  6.         while($row = $db->fetch_array($consulta)) {  
  7.               echo "<br/><br/>Campo 1: ".$row['campo1']."<br />";  
  8.               echo "Campo 2: ".$row['campo2']."<br />";
  9.         }  
  10.     }

El problema que tengo es que quiero definir los datos de acceso a la DB en el archivo config.php y pasarle los datos a la clase para que conecte (ya que con esa clase quiero usarla para conectar varias webs).

Al momento de cambiar:
Código PHP:
Ver original
  1. $this->host = "localhost";
  2.             $this->nombredb = "plantilla";
  3.             $this->usuariodb = "root";
  4.             $this->contrasenadb = "****";

Por:
Código PHP:
Ver original
  1. $this->host = $host;
  2.             $this->nombredb = $nombredb;
  3.             $this->usuariodb = $usuariodb;
  4.             $this->contrasenadb = $contrasenadb;

No funciona y no entiendo el porqué (seguramente sea una tontería), pero estoy bloqueado.

¿Algún alma caritativa me ayuda? :)
__________________
@JaimeMSE - ¡Sígueme!
  #2 (permalink)  
Antiguo 09/04/2012, 19:21
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Problema con variables y clase conexión DB

Lo dicho, era una tontería... no le estaba pasando las variables a la función conexion:

Código PHP:
Ver original
  1. class conexion {
  2.        
  3.         var $host;
  4.         var $nombredb;
  5.         var $usuariodb;
  6.         var $contrasenadb;
  7.        
  8.         public function conexion($host,$nombredb,$usuariodb,$contrasenadb) {
  9.            
  10.             $this->host = $host;
  11.             $this->nombredb = $nombredb;
  12.             $this->usuariodb = $usuariodb;
  13.             $this->contrasenadb = $contrasenadb;
  14.            
  15.             if(!isset($this->conexion)) {
  16.                 $this->conexion = mysql_connect($this->host,$this->usuariodb,$this->contrasenadb) or die(mysql_error());
  17.                 mysql_select_db($this->nombredb,$this->conexion) or die(mysql_error());
  18.             }

Por si a alguien también le pasa esta tontería.

Lo gracioso es que llevaba 20minutos detrás liado. He posteado y se me ha venido a la cabeza...

EDITO: Ya que estoy, ¿alguien no me recomienda lo que estoy haciendo para conectar con la base de datos? No veo otra manera de usar una clase para varias webs que no sea esta.
Gracias.
__________________
@JaimeMSE - ¡Sígueme!

Etiquetas: clase, conexion, mysql
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 00:14.