我无法显示查询结果是否为空

时间:2019-11-12 08:24:07

标签: php mysql pdo

我正在我的项目上执行登录页面,我必须检查我获得的“用户名”是否在数据库中

我试图获取查询并将结果保存在变量中

// #########login.php############
<html>
    <head>
     <title>Login</title>

    </head>
    <body>
        <form id="form" action="login-action.php" method="post">
            <input type="text" id='usuario' name='usuario' placeholder="Usuario">
            <input type="password" id='password' name='password' placeholder="Contraseña">
            <input type="submit" value="Login">
        </form>
    </body>
</html>
<?php


<?php
// #########login-action.php############
$usuario = $_POST["usuario"];
$password = $_POST["password"];

function comprobarLogin ($dbh, $usuario){
    $data = array("usuario" => $usuario);

    $stmt = $dbh->prepare("SELECT nomUsuario FROM Usuarios Where nomUsuario = :usuario");
    $stmt->setFetchMode(PDO::FETCH_OBJ);
    $stmt->execute();


    $row = $stmt->fetch();

    if($row == null){
        echo $usuario;
        require "login.php";
    }
      else {
        require "index.php";
    }


}
include "conexionBD.php";
$dbh = connect();
comprobarLogin($dbh,$usuario);

?>
   if($row == null){
            echo $usuario;
            require "login.php";
        }
          else {
            require "index.php";
        }

即使用户确实存在,也永远不会显示其他结果 因此,变量$ row始终为空

1 个答案:

答案 0 :(得分:1)

您还必须使用已经准备好的参数

替换

$stmt->execute();

使用

$stmt->execute($data);