首页 > 解决方案 > 使用 php PDO 在 while($row->$statement->fetch()) 中不起作用

问题描述

if(isset($_POST['btnLogin']))
{
$username = $_POST['txtusername'];
$pass_word = $_POST['txtpassword'];
$hashed_password = crypt(sha1($pass_word));


$sqlQuery  = "SELECT * from users WHERE username = :username AND password = :password" ;
$statement = $conn->prepare($sqlQuery);
$statement->execute(array(':username' =>$user , ':password'=>$hashed_password));

while($row->$statement->fetch())
{
    $id       = $row['id'];
    $username = $row['username'];
    $password = $row['password'];

    if(strcmp('$password', '$hashed_password') == 0)
    {
        echo "<script type='text/javascript'>console.log("Sucess");</script>";
    }
    else
    {
        echo "<script type='text/javascript'>console.log("Failed");</script>";
    }

}

}

在这里,我正在使用 PHP PDO 代码实现登录页面。我以前没有使用 PHP PDO 的经验。我在注册页面上没有任何错误,但不幸的是程序在之后没有执行

while($row->$statement->fetch())

这是HTML代码

<section>

    <div class="container">
        <div class="login-form">
            <h1>Sign In</h1>
            <form id="login-form" method="post" action="">
            <div class="form-group">
                <input type="text" name="txtusername" placeholder="Username" data-validation="required">
            </div>
            <div>
                <input type="password" name="txtpassword" placeholder="Password" data-validation="required">
            </div>
                <input type="submit" name="btnLogin" value="Login">
            </form>
        </div>
    </div>
</section>

PHP版本:5.3.8

请给我任何解决它的建议

标签: phppdowhile-loop

解决方案


试试下面的。如果它不起作用,请将您的查询包装在其中并打开错误报告。

if(isset($_POST['btnLogin']))
{
$username = $_POST['txtusername'];
$pass_word = $_POST['txtpassword'];
$hashed_password = crypt(sha1($pass_word));


$sqlQuery  = "SELECT * from users WHERE username = :username AND password = :password" ;
$statement = $conn->prepare($sqlQuery);
$statement->execute(array(':username' =>$user , ':password'=>$hashed_password));

while($row = $statement->fetch_object())
{
    $id       = $row->id;
    $username = $row->username;
    $password = $row->password;

    if(strcmp('$password', '$hashed_password') == 0)
    {
        echo '<script type="text/javascript">console.log("Success");</script>';
    }
    else
    {
        echo '<script type="text/javascript">console.log("Failed");</script>';
    }

}

}


推荐阅读