Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2008, 14:31
grey
 
Fecha de Ingreso: diciembre-2007
Mensajes: 178
Antigüedad: 16 años, 4 meses
Puntos: 1
Problema con PDO

Estimados amigos;
estoy teniendo un problema con una conexion PDO.

Tengo una clase Loguearse que tiene 2 metodos:
uno loguea al usuario y el otro crea un token en la base de datos, la funcion creartoken es utilizada por la primera.
Las llamadas a la base por separado funcionan bien pero cuando con una misma conexion intento hacer los dos llamados, el segundo llamado no me lo hace, le hago un var_dump() y me sale vacio.
No entiendo porque cuando llamo nuevamente a la variable '$this->conexionbd' esta llega vacia.
Les dejo las clases :

Código PHP:
class Singleton{

public static 
$instance;
public function 
__construct(){}

public static function  
getinstance(){
    if(empty(
Singleton::$instance)){
Singleton::$instance = new PDO("mysql:host=localhost;dbname=baseuno""user","pass");
    }
    return 
Singleton::$instance;
}


Código PHP:
include('class.Singleton.php');
include(
'class.Formulario.php');

class 
Loguearse{
    private 
$conexionbd;
    private 
$usu;
    private 
$pas;
    
    public function 
__construct($usua=null$pass=null){
        
$this->conexionbd=Singleton::getinstance();
        
$this->conexiondos=Singleton::getinstance();
        
$this->usu=$usua;
        
$this->pas=$pass;
    }
    
    public function 
loguearusuario(){
        
    
$consulta="select COUNT(*) from administradores where usuario='$this->usu' && pass='$this->pas'";
        
$count=$this->conexionbd->query($consulta);
        
        

if(
$count->fetchColumn() == 1){

    
$this->creartoken();
    
    
$_SESSION['usuario']=$this->usu;
    
    
$sessi=utf8_encode('sesión');
    echo
"<span class=\"letra\">Bienvenido ".$this->usu.", la ".$sessi." ya ha sido activada.</span>";
    
}

else{
    
    echo
"<span class=\"letra\">Los datos por Ud. ingresados no son correctos.</span><br>\n";
    
$dos=new Formulario();
    
$dos->verformulario();
    
}

}

    
    public function 
creartoken(){
        
$numtoken=rand(10000,99999);
        
$count $this->conexionbd->exec("UPDATE administradores SET token='$numtoken' WHERE usuario='$this->usu'");
        
var_dump($count);
        if(
$count==1){
                
        
$_SESSION['token']=$numtoken;
        
        }
    }


Asi instancio:
Código PHP:
session_start();
include_once(
'clases/class.Loguearse.php');
$usuario=$_POST['usuario'];
$password=md5($_POST['password']);


$sso=new Loguearse($usuario,$password);
$sso->loguearusuario();