elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Errores con POO base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Errores con POO base de datos  (Leído 1,576 veces)
javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Errores con POO base de datos
« en: 17 Marzo 2012, 20:00 pm »

Hola, tengo un problema que me está poniendo la cabeza como un tambor:
tengo tres archivos, el primero (clases.php):
Código
  1. include_once("config.php");
  2. class Servidor_Base_Datos
  3. {
  4.   private $servidor;
  5.   private $usuario;
  6.   private $pass;
  7.   private $base_datos;
  8.   private $descriptor;
  9.   function __construct($servidor,$usuario,$pass,$base_datos) {
  10.      $this->servidor = $servidor;
  11.      $this->usuario = $usuario;
  12.      $this->pass = $pass;
  13.      $this->base_datos = $base_datos;
  14.      $this->conectar_base_datos();
  15.   }
  16.   private function conectar_base_datos() {
  17.      $errorconect = "No ha sido posible conectar con la base de datos.";
  18.      $this->descriptor = mysql_connect($this->servidor,$this->usuario,$this->pass,$this->base_datos) or die ($errorconect);
  19.   }
  20.   public function consulta($consulta) {
  21.      $errorquery = "Fallo al sacar información de las tablas.";
  22.      $this->consulta = mysql_query($consulta,$this->descriptor)or die ($errorquery);
  23.   }
  24.   public function extraer_registro() {
  25.      $this->resultado=mysql_fetch_array($this->consulta);
  26.      return $this->resultado;
  27.   }
  28. }

El segundo, el del include (config.php):
Código
  1. <?php
  2. //Datos para conectarse a db:
  3. $servidor = "localhost";
  4. $usuario = "root";
  5. $pass = "";
  6. $base_datos = "basededatos";
  7. ?>

El tercero, donde hago una consulta a la base de datos:
Código
  1. <?php
  2. require_once("config/config.php");
  3. require_once("config/clases.php");
  4. $usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);
  5. $usuario->consulta("select * from users");
  6. while($fila=$usuario->extraer_registro()){
  7. printf("%s<br>",$fila["email"]);
  8. }
  9. ?>

Bien, pues resulta que no hace la consulta bien y tira el error ese que he puesto de "Fallo al sacar información de las tablas." y no sé qué hacer más, la conexión la hace bien porque no sale mensaje alguno, y la tabla se llama users, como pone en la consulta.

Un saludo y gracias por adelantado.


« Última modificación: 17 Marzo 2012, 20:01 pm por javirk » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.760



Ver Perfil WWW
Re: Errores con POO base de datos
« Respuesta #1 en: 17 Marzo 2012, 20:21 pm »

Cambia,
Código
  1. public function consulta($consulta) {
  2.      $errorquery = "Fallo al sacar información de las tablas.";
  3.      $this->consulta = mysql_query($consulta,$this->descriptor)or die ($errorquery);
  4.   }

Por
Código
  1. public function consulta($consulta) {
  2.      $errorquery = "Fallo al sacar información de las tablas.";
  3.      $this->consulta = mysql_query($consulta,$this->descriptor)or die (mysql_error());
  4.   }

Y mira a ver que error te tira.

Saludos


En línea

javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Re: Errores con POO base de datos
« Respuesta #2 en: 17 Marzo 2012, 20:42 pm »

Vale, gracias, me dice que no hay una base de datos seleccionada, pero si hago:
Código
  1.   function datos(){
  2.      echo $this->base_datos;
  3.   }

Código
  1. $usuario->datos();

Me muestra la base de datos que tiene que salir. No lo entiendo.

Un saludo.
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.760



Ver Perfil WWW
Re: Errores con POO base de datos
« Respuesta #3 en: 17 Marzo 2012, 21:57 pm »

Debes seleccionar la base de datos mediante mysql_select_db('nombre',$conexion);.

PD: El mysql_connect hasta donde yo se, no puede selecionar una bd.

Saludos
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Errores con POO base de datos
« Respuesta #4 en: 17 Marzo 2012, 23:44 pm »

Debes seleccionar la base de datos mediante mysql_select_db('nombre',$conexion);.

PD: El mysql_connect hasta donde yo se, no puede selecionar una bd.

Saludos

Exacto, el le esta pasando a mysql_connect el nombre de la DB como el 4 parametro jejejeje, y el 4 parametro es para otra cosa.

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Re: Errores con POO base de datos
« Respuesta #5 en: 18 Marzo 2012, 10:41 am »

Ahhh! Muchas gracias! Ya lo he arreglado, pongo el archivo para que otros no caigan en el mismo problema:
Código
  1. <?php
  2. include_once("config.php");
  3. class Servidor_Base_Datos
  4. {
  5.   private $servidor;
  6.   private $usuario;
  7.   private $pass;
  8.   private $base_datos;
  9.   private $descriptor;
  10.   function __construct($servidor,$usuario,$pass,$base_datos) {
  11.      $this->servidor = $servidor;
  12.      $this->usuario = $usuario;
  13.      $this->pass = $pass;
  14.      $this->base_datos = $base_datos;
  15.      $this->conectar_base_datos();
  16.   }
  17.   private function conectar_base_datos() {
  18.      $errorconect = "No ha sido posible conectar con la base de datos.";
  19.      $this->descriptor = mysql_connect($this->servidor,$this->usuario,$this->pass) or die ($errorconect);
  20.      mysql_select_db($this->base_datos,$this->descriptor);
  21.   }
  22.   public function consulta($consulta) {
  23.      $errorquery = "Fallo al sacar información de las tablas.";
  24.      $this->consulta = mysql_query($consulta,$this->descriptor)or die ($errorquery);
  25.   }
  26.   public function extraer_registro() {
  27.      $this->resultado=mysql_fetch_array($this->consulta);
  28.      return $this->resultado;
  29.   }
  30.  
  31.   function datos(){
  32.      echo $this->servidor;
  33.      echo "<br>";
  34.      echo $this->base_datos;
  35.   }
  36. }
  37.  
  38. ?>

Los otros dos archivos son iguales
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines