Foros del Web » Programando para Internet » PHP »

Error en Consulta MySQL - OOP

Estas en el tema de Error en Consulta MySQL - OOP en el foro de PHP en Foros del Web. Tengo un error que no puedo solucionar en una consulta a MySQL. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php       $host     ...
  #1 (permalink)  
Antiguo 30/01/2011, 19:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Error en Consulta MySQL - OOP

Tengo un error que no puedo solucionar en una consulta a MySQL.

Código PHP:
Ver original
  1. <?php  
  2.     $host       = "localhost";
  3.     $dbname     = "publicalibre";
  4.     $dbuser     = "root";
  5.     $password   = "";
  6.        
  7.     //Abrir conexion SQL
  8.     $connect = mysql_connect($host,$dbuser,$password);
  9.     mysql_select_db($dbname); //Seleccionamos la base de datos.
  10.    
  11.     class Usuario{
  12.  
  13.         public $Query;
  14.         public $SQL;
  15.         public $Result;
  16.         public $numrows;
  17.        
  18.         //Constructor
  19.         function Usuario(){
  20.             $this->Query = "";
  21.             $this->SQL = "";
  22.             $this->Result = "";
  23.             $this->numrows = "";
  24.         }
  25.        
  26.         //Verificamos si existe un email repetido.
  27.         function consultarEmail($email){
  28.  
  29.             try{
  30.                
  31.                 $email          = $email;
  32.                 //$dbConectar       = new Conexion();
  33.                 //$dbCon            = $dbConectar->conectarClasico();
  34.            
  35.                
  36.                 //Inicia la transacción.
  37.                 mysql_query("BEGIN");
  38.                
  39.                 $this->SQL = "SELECT * FROM registrarion WHERE email'$email'";
  40.                 $this->Result = mysql_query($this->SQL);
  41.                 $this->numrows = mysql_num_rows($this->Result);
  42.  
  43.                 return $this->numrows;
  44.                
  45.             }catch(Exception $e){
  46.                 return false;
  47.             }
  48.        
  49.         }
  50.     }
  51.    
  52.     $email = "[email protected]";
  53.     $comprobar = new Usuario;
  54.    
  55.     echo $comprobar->consultarEmail($email);
  56.  
  57. ?>


Me arroja este error :
Código Error:
Ver original
  1. Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\web\models\Usuario.php on line 41

La conexion a MySQL está correcta!

Help Me. ThankS!
  #2 (permalink)  
Antiguo 30/01/2011, 19:45
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Error en Consulta MySQL - OOP

En esta línea:
Código PHP:
Ver original
  1. $this->SQL = "SELECT * FROM registrarion WHERE email'$email'";

Debe ser:

Código PHP:
Ver original
  1. $this->SQL = "SELECT * FROM registrarion WHERE email = '$email'";
Otra cosa, la tabla se llama REGISTRARION o REGISTRATION. Tienes un problema con el nombre de la tabla.
  #3 (permalink)  
Antiguo 30/01/2011, 19:46
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Error en Consulta MySQL - OOP

Muchas Gracias Miguelithox! Me has salvado la noche !!


Saludos
  #4 (permalink)  
Antiguo 30/01/2011, 20:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Error en Consulta MySQL - OOP

Ahora me ha surgido otro problema, he llamado a Conexion.php donde he creado una clase para conectar a MySQL y funciona bién!.

Pero en el metodo consultarEmail($email), no logro saber porque no funciona la propiedad $dbCon

Mejor coloco el Código:
Código PHP:
Ver original
  1. <?php
  2.     //Se incluye la conexion con MySQL.
  3.     include_once 'Conexion.php';
  4.    
  5.     class Usuario{
  6.  
  7.         public $Query;
  8.         public $SQL;
  9.         public $Result;
  10.         public $numrows;
  11.         public $dbConectar;
  12.         public $dbCon;
  13.        
  14.         //Constructor
  15.         function Usuario(){
  16.             $this->Query        = "";
  17.             $this->SQL          = "";
  18.             $this->Result       = "";
  19.             $this->numrows      = "";
  20.             $this->dbConectar   = "";
  21.             $this->dbCon        = "";
  22.         }
  23.        
  24.         //Verificamos si existe un email repetido.
  25.         function consultarEmail($email){
  26.  
  27.             try{
  28.                
  29.                 $email          = $email;
  30.  
  31.                 $dbConectar     = new Conexion();
  32.                 $dbCon          = $dbConectar->conectarClasico();
  33.                
  34.                 //Inicia la transacción.
  35.                 mysql_query("BEGIN",$dbCon);
  36.                
  37.                 $this->SQL = "SELECT * FROM registration WHERE email='$email'";
  38.                 $this->Result = mysql_query($this->SQL,$dbCon);
  39.                 $this->numrows = mysql_num_rows($this->Result);
  40.  
  41.                 return $this->numrows;
  42.                
  43.             }catch(Exception $e){
  44.                 return false;
  45.             }
  46.        
  47.         }
  48.     }
  49.    
  50.     $email = "[email protected]";
  51.     $comprobar = new Usuario;
  52.    
  53.     echo $comprobar->consultarEmail($email);
  54.  
  55. ?>


Gracias nuevamente :)

Dejo los Warning :

Código Error:
Ver original
  1. Warning: mysql_query() expects parameter 2 to be resource, integer given in C:\wamp\www\web\models\Usuario.php on line 30
  2.  
  3. Warning: mysql_query() expects parameter 2 to be resource, integer given in C:\wamp\www\web\models\Usuario.php on line 33
  4.  
  5. Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\wamp\www\web\models\Usuario.php on line 34
  #5 (permalink)  
Antiguo 30/01/2011, 20:05
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Error en Consulta MySQL - OOP

En ésta línea:
Código PHP:
Ver original
  1. $email          = $email;

No debería ser?:
Código PHP:
Ver original
  1. $this->email          = $email;
En el caso de que pusieras arriba "public $email;"
No sé si estaré en lo correcto.
  #6 (permalink)  
Antiguo 30/01/2011, 20:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Error en Consulta MySQL - OOP

Miguelithox si también olvide eso :) Gracias, aunque el error continuo persistiendo.

Sin más con solo cambiar el nombre del constructor por __construct() , funciono :S

Saludos.
  #7 (permalink)  
Antiguo 30/01/2011, 20:40
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Error en Consulta MySQL - OOP

Claro en PHP OO no puedes cambiar __construct() por otro, si no, no te funciona. Saludos.

Etiquetas: mysql, oop
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:53.