Foros del Web » Programando para Internet » PHP »

Como ejecutar Query de Mysql en varios puntos?

Estas en el tema de Como ejecutar Query de Mysql en varios puntos? en el foro de PHP en Foros del Web. Hola amigos, estoy empezando con PHP y MySQL y la verdad estoy un poco perdido. He trabajado ya con Mysqli y he logrado hacer consultas, ...
  #1 (permalink)  
Antiguo 02/02/2018, 13:13
 
Fecha de Ingreso: enero-2009
Mensajes: 17
Antigüedad: 15 años, 3 meses
Puntos: 0
Como ejecutar Query de Mysql en varios puntos?

Hola amigos, estoy empezando con PHP y MySQL y la verdad estoy un poco perdido.

He trabajado ya con Mysqli y he logrado hacer consultas, guardar valores, recorrer tablas etc, pero ahora tengo una duda....

Intento crear una pantalla de login, en donde obtengo los datos del usuario, posteriormente actualizo su estado a conectado, pero si los datos proporcionados son incorrectos entonces guarda el intento de conexión. Mi duda es, con una misma instancia de MySQLi es posible ejecutar varias querys en diferentes puntos, algo como lo siguiente:
  1. Creo Instancia de MySQLi con su repectiva conexión
  2. Ejecuto primer query donde recupero los datos del usuario
  3. Valido la contraseña recuperada contra la contraseña que esta digitando
  4. Si es correcto: Guardo mediante un query el inicio de sesión en la base de datos
  5. Por el contrario, si la contraseña es incorrecta, entonces guardo mediante un query el intento de inicio de sesión fallida.

Dejo aca lo que estoy trabajando para que me entiendan mejor:

Código PHP:
function login($post_username$password$mysqli)
{
    
$mysqli = new mysqli(HOSTUSERPASSWORDDATABASE);

    
$sql " CALL sp_sesion_begin ('" $post_username "'); ";
    
    if (
$result $mysqli->query($sql))
    {
        
$row_cnt $result->num_rows;
        
        if (
$row_cnt == 1)
        {
            
$fila $result->fetch_assoc();
            
            
$result->free();
            
            
// Obtiene las variables del resultado.
            
$cod_usuario $fila["cod_usuario"];
            
$email $fila["email"];
            
$username $fila["username"];
            
$db_password $fila["contrasenia"];
            
$cod_tipo_usuario $fila["cod_tipo_usuario"];
            
$conectado $fila["conectado"];
            
$MIN $fila["MIN"];
            
            
// Hace el hash de la contraseña
            
$password hash('sha512'$password);
            
            
// Verifica si el usuario aparece como conectado
            
if ($conectado == 0){ $iniciar true; } else { if ($MIN >= 10){ $iniciar true; } else { $iniciar false; } } 
            
            if (
$iniciar == true)
            {
                if (
$db_password == $password)
                {
                    
// ¡La contraseña es correcta!
                    // Obtén el agente de usuario del usuario.
                    
$user_browser $_SERVER['HTTP_USER_AGENT'];
                    
                    
$_SESSION['cod_usuario'] = $cod_usuario;
                    
$_SESSION['email'] = $email;
                    
$_SESSION['username'] = $username;
                    
$_SESSION['cod_tipo_usuario'] = $cod_tipo_usuario;                
                    
$_SESSION['login_string'] = hash('sha512'$password $user_browser);
                    
                    
// Ingresa los datos del usuario como conectado
                    
$mysqli->query("CALL sp_ss_success ('$cod_usuario', '" getUserIpAddress() . "', @resultado)");
                    
                    return 
true;
                }
                else
                {
                    echo 
"<p>CODIGO: $cod_usuario</p>";
                    echo 
"<p>CALL sp_ss_fail ('$cod_usuario', '" getUserIpAddress() . "', @resultado)</p>";
                    
// La contraseña no es correcta.
                    // Se graba este intento en la base de datos.
                    
$mysqli->query("CALL sp_ss_fail ('$cod_usuario', '" getUserIpAddress() . "', @resultado)");
                    
                    echo 
"Usuario no permitido.";
                    
                    return 
false;
                
// VERICIA LA CONTRASEÑA COINCIDE
                
}
            
// VERIFICA SI LOS TIEMPO DE LA CONEXIÓN
            
}
            else
            {
                
$mysqli->query("CALL sp_ss_fail ('$cod_usuario', '" getUserIpAddress() . "', @resultado)");
                
                echo 
"Su usuario se encuentra conectado en la aplicación. Espere 10 minutos para que el usuario se desconecte automáticamente. Si el problema persiste por favor contáctenos.";
                
                return 
false;
            }
        }
        else
        {
            echo 
"El usuario no existe";
            return 
false;
            
/* VERIFICAR NUMERO DE FILA */
        

    }
    else
    {
        echo 
"El usuario no existe";
        return 
false;
        
/* VERIFICAR SI HAY RESULTADO */
    

    
    

Cabe mencionar que he probado los store procedure por separados y se ejecutan perfectamente, el problema es cuando ejecuto todo junto. Por cierto, no recibo ningun error, simplemente el store procedure parece no ejecutarse.

Si pueden ayudarme les estaria muy agradecidos

Etiquetas: mysql, query, sql, tabla
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




La zona horaria es GMT -6. Ahora son las 05:45.