Título: Errores con POO base de datos
Publicado por: javirk 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): include_once("config.php"); class Servidor_Base_Datos { private $servidor; private $usuario; private $pass; private $base_datos; private $descriptor; function __construct($servidor,$usuario,$pass,$base_datos) { $this->servidor = $servidor; $this->usuario = $usuario; $this->pass = $pass; $this->base_datos = $base_datos; $this->conectar_base_datos(); } private function conectar_base_datos() { $errorconect = "No ha sido posible conectar con la base de datos."; $this->descriptor = mysql_connect($this->servidor,$this->usuario,$this->pass,$this->base_datos) or die ($errorconect); } public function consulta($consulta) { $errorquery = "Fallo al sacar información de las tablas."; $this->consulta = mysql_query($consulta,$this->descriptor)or die ($errorquery); } public function extraer_registro() { return $this->resultado; } }
El segundo, el del include (config.php): <?php //Datos para conectarse a db: $servidor = "localhost"; $usuario = "root"; $pass = ""; $base_datos = "basededatos"; ?>
El tercero, donde hago una consulta a la base de datos: <?php require_once("config/config.php"); require_once("config/clases.php"); $usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos); $usuario->consulta("select * from users"); while($fila=$usuario->extraer_registro()){ printf("%s<br>",$fila["email"]); } ?>
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.
Título: Re: Errores con POO base de datos
Publicado por: #!drvy en 17 Marzo 2012, 20:21 pm
Cambia, public function consulta($consulta) { $errorquery = "Fallo al sacar información de las tablas."; $this->consulta = mysql_query($consulta,$this->descriptor)or die ($errorquery); }
Por public function consulta($consulta) { $errorquery = "Fallo al sacar información de las tablas."; }
Y mira a ver que error te tira. Saludos
Título: Re: Errores con POO base de datos
Publicado por: javirk en 17 Marzo 2012, 20:42 pm
Vale, gracias, me dice que no hay una base de datos seleccionada, pero si hago: function datos(){ echo $this->base_datos; }
$usuario->datos();
Me muestra la base de datos que tiene que salir. No lo entiendo. Un saludo.
Título: Re: Errores con POO base de datos
Publicado por: #!drvy 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
Título: Re: Errores con POO base de datos
Publicado por: ~ Yoya ~ 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.
Título: Re: Errores con POO base de datos
Publicado por: javirk 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: <?php include_once("config.php"); class Servidor_Base_Datos { private $servidor; private $usuario; private $pass; private $base_datos; private $descriptor; function __construct($servidor,$usuario,$pass,$base_datos) { $this->servidor = $servidor; $this->usuario = $usuario; $this->pass = $pass; $this->base_datos = $base_datos; $this->conectar_base_datos(); } private function conectar_base_datos() { $errorconect = "No ha sido posible conectar con la base de datos."; $this->descriptor = mysql_connect($this->servidor,$this->usuario,$this->pass) or die ($errorconect); } public function consulta($consulta) { $errorquery = "Fallo al sacar información de las tablas."; $this->consulta = mysql_query($consulta,$this->descriptor)or die ($errorquery); } public function extraer_registro() { return $this->resultado; } function datos(){ echo $this->servidor; echo "<br>"; echo $this->base_datos; } } ?>
Los otros dos archivos son iguales
|