【问题标题】:$statement->num_rows returning 0$statement->num_rows 返回 0
【发布时间】:2026-02-09 10:45:01
【问题描述】:

我正在尝试使用电子邮件确认进行登录系统,因此当用户确认电子邮件时,数据库中的哈希值从 MD5 值更改为“已确认”,然后在我使用的 logon.php 中:

if (isset($_POST['submit']))
{
    $confirmed = 'confirmed';
    $username = $_POST['username'];
    $password = $_POST['password'];

    $query = "SELECT id, username FROM users WHERE username = ? AND hash = ? AND password = SHA(?) LIMIT 1";
    $statement = $databaseConnection->prepare($query);
    $statement->bind_param('sss', $username, $password, $confirmed);

    $statement->execute();
    $statement->store_result();

    if ($statement->num_rows == 1)
    {
        $statement->bind_result($_SESSION['userid'], $_SESSION['username']);
        $statement->fetch();
        header ("Location: index.php");
    }
    else
    {
        echo "Username/password combination is incorrect.";
    }
}

我已经尝试了所有方法,但是$statement->num_rows 总是返回 0,有人可以帮助我吗?请

【问题讨论】:

  • 除此之外,在您的header 重定向行之后放置一个exit

标签: php return


【解决方案1】:

我想你正在寻找

  $statement->rowCount()

希望对你有帮助

【讨论】: