Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2010, 13:28
mag55
 
Fecha de Ingreso: octubre-2009
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 1
problema con consulta mysql

hola gente como estan despues de mucho vuelvo a molestarlos, con una pavada pero bueno... me tiene loco y no le encuentro la vuelta, esto tiene como objetivo registrar un usuario en una pagina ,muestro de donde me parece que empieza el problema, es ta clase hace de nexo entre la base y el programa y a esta le llegan tres paramatros para que trabaje, estos son $username, $passwd y $mail. Todo va bien hasta que se topa con la sentencia en donde sale $insertarStr la cual va a para a la clase conecta que se muestra mas abajo, porque al hacer un debug con netbeans muestra que se pasan perfectamente los datos que contiene las variables pero al llegar a la funcion consultar de la clase conecta el contenido de la variable $insertarStr falla, y algo raro cuando lo probe por primera vez me tomo el contenido de la variable $insertar('insert into usuario(nombUsuario, clave, correo) values("$usrname", "$passwd", "$mail")') pero en la base de datos lo que aparecio fue $usrname, $passwd y $mail es decir las variables del formulario donde cargo los datos y no su contenido crei que eran las comillas pero si se las saco creo que da error tambien asi, no se que hacer si me pueden dar una mano se los agradecere y disculpen por lo extenso.
saludos

Código PHP:
 require_once('conexion.php');

    class 
Autentica
    
{
            private 
$servidor'localhost';
            private 
$usuario'gerardo';
            private 
$clave'gerardo';
            private 
$baseDatos'marcadores';
            private 
$base;

            
//Asi se crea y usa un objeto dentro de una clase
            
function __construct()
            {
                    
$this-> base= new Conecta($this-> servidor$this-> usuario$this-> clave$this-> baseDatos);
            }

            function 
registrar($usrname$passwd$mail)
            {
                    try
                    {
                            
$consultaStr'select * from usuario where nombUsuario= "$usrname"';
                            
$this-> base->consultar($consultaStr);
                    }
                    catch (
Exception $e)
                    {
                            
$msg$e->getMessage();
                            echo 
$msg;
                            exit();
                    }

                    if(
mysql_num_rows>0)
                    {
                            echo 
'El ususario que intenta registrar ya existe';
                            exit();
                    }

                    try
                    {
                            
$insertarStr'insert into usuario(nombUsuario, clave, correo)         values("$usrname", "$passwd", "$mail")';
                            
$this-> base->consultar($insertarStr);
                    }
                    catch (
Exception $e)
                    {
                            
$msg$e-> getMessage();
                            echo 
$msg;
                            exit();
                    }

            }
    } 
Código PHP:
class Conecta
    
{
            private 
$servidor;
            private 
$usuario;
            private 
$clave;
            private 
$baseDatos;
            private 
$abrirConexion;

            function 
__construct($servidor$usuario$clave$baseDatos)
            {
                    
$this-> servidor$servidor;
                    
$this-> usuario$usuario;
                    
$this-> clave$clave;
                    
$this-> baseDatos$baseDatos;

                    try 
//se usa este bloque donde se de puede producir un error(esta conectado a throw new Exception)
                    
{
                            
$this-> conectar_base();
                    }
                    catch (
Exception $e)
                    {
                            
$msg$e->getMessage();
                            echo 
$msg;
                            exit();
                    }

            }

            public function 
conectar_base()//ABRE conexión con la base
            
{
                            
$this->abrirConexion= @mysql_connect($this->servidor$this->usuario$this->clave);

                            if(!
$this->abrirConexion)
                            {
                                    throw new 
Exception('<b>ERROR::</b> No se ha podido establecer la
                                                                            conexion con el SERVIDOR, por favor intente mas tarde.<br>'
);
                                    exit();
                            }

                            
$enlazarBase= @mysql_select_db($this->baseDatos$this->abrirConexion);

                            if(!
$enlazarBase)
                            {
                                    throw new 
Exception('<b>ERROR::</b>No sea podido establecer conexion con
                                                                            la BASE DE DATOS solicitada, por favor intente más tarde.<br>'
);
                                    exit();
                            }
            }

            public function 
desconectar_base()//CIERRA la conexión con la base
            
{
                    
$cerrarConexion= @mysql_close($this->abrirConexion);
            }

            public function 
consultar($consulta)//usar esta func en caso de una petición mas específica a la base
            
{
                    
$this->resultado= @mysql_query($consulta);

                    if(!
$this->resultado)
                    {
                            throw new 
Exception('<b>ERROR::</b>No se ha podido realizar la peticion.<br>');
                            exit();
                    }
            }

            public function 
extraer_registro()//EXTRAE registro o fila de la base según consulta
            
{
                    if(
$fila= @mysql_fetch_assoc($this->resultado))
                    {
                            return 
$fila;
                    }
                    else
                    {
                            return 
false;
                    }
            }
    }