Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2013, 18:06
amerkmif
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta PHP y procedimientos almacenados

Hola a todos estoy desarrollando una aplicación en PHP que contiene procedimientos almacenados pero no les he trabajado muy bien en MySQL
entonces mi pregunta es si me pueden ayudar haber cual es el error que tengo.

Estoy tratando de hacer un login simple donde se ingresa el usuario, password y se consulta en la BD si el usuario existe y me muestre un mensaje de confirmación, pero el problema es cuando llamo el procedimiento en PHP la consulta me llega vacia, pero si lo pruebo en la consola de mysql el procedimiento me devuelve los datos correctos.

codigo de la tabla, la base de datos se llama usuariosbanco
Código:
CREATE TABLE IF NOT EXISTS `usuarios` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(100) NOT NULL,
  `Password` varchar(100) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `usuarios` (`Id`, `Nombre`, `Password`) VALUES
(1, 'Anna', 'admin');
1.Aqui esta el codigo del procedmiento almacenado
Código:
CREATE PROCEDURE precioDolar5(
  IN  nom         varchar (100),
  OUT nombi       varchar(100),
  OUT passo       varchar(100)
)
BEGIN
 DECLARE c CURSOR
 FOR SELECT nombre, password
       FROM usuarios u
       WHERE u.nombre = nom;
 SET nombi = "";
 SET passo = "";
 OPEN c;
   FETCH c INTO nombi, passo;
 CLOSE c; 
SELECT @nombi,@passo;
END$$
2. Codigo PHP que ejecuta el procedmiento y valida
Código PHP:
<?php

session_start
();

if (isset(
$_POST['login'])) {
    
$username $_POST['username'];
    
$password $_POST['password'];
    echo 
$username;

    if (
$username == "" && $password "") {
        require 
"../Forms/Login.php";
    } else {
        
$link mysql_connect("localhost""root""");
        
mysql_select_db("usuariosbanco"$link);

        
$consulta mysql_query("call precioDolar5('" $username "',@nombi,@passo)") or die('La consulta fallo;:' mysql_error());
        
$rowValues = Array();
        while (
$linea mysql_fetch_array($consultaMYSQL_ASSOC)) {
            foreach (
$linea as $valor_col) {
                
$rowValues[] = $valor_col;
            }
        }
        if (
$password == $rowValues[1] && $rowValues[0] == $username) {
            echo 
"datos correctos";
        } else {
            echo 
'Sus datos no son correctos';
        }
    }
}
if (isset(
$_GET['start'])) {
    require 
"../Forms/index.php";
}
?>
3.Formulario que envia la petición
Código HTML:
<html>
    <head>
        <title>Bienvenido</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <LINK REL=StyleSheet HREF="../Themes/skin.css" TYPE="text/css" MEDIA=screen>
    </head>
    <body>
    <center>
        <form action = "../events/eventsFrmLogin.php" method ="post">
            Username: <input type="text" name="username" value=""><br>
            Password: <input type="password" name="password" value=""><br>
            <input type="submit" name="login" value="login"><br>
        </form>
    </center>
</body>
</html> 
4. Index de la aplicación PHP
Código PHP:
<?php
// put your code here
header("location:Events/eventsFrmLogin.php?start=yes");
?>
Si me pueden ayudar se los agradeceria pues no he encontrado la solución