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();