Php 为什么我的行计数条件总是返回0?

Php 为什么我的行计数条件总是返回0?,php,Php,我有这部分代码,其中我的$row\u count总是返回一个值0,即使我有正确的用户名和密码 if (isset($_POST['submit'])){ $username = $_POST['username']; $password = $_POST['password']; $stmt = $conn->prepare("SELECT * FROM users WHERE uName = ? AND uPassword = ?"); $stmt->bind_param('ss

我有这部分代码,其中我的
$row\u count
总是返回一个值0,即使我有正确的用户名和密码

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

$stmt = $conn->prepare("SELECT * FROM users WHERE uName = ? AND uPassword = ?");
$stmt->bind_param('ss',$username,$password);
$stmt->execute() or die ($stmt->error);
$get_result=$stmt->get_result();
print_r($get_result); //DEBUG purpose
$row_count= $stmt->num_rows;
print_r($row_count); die;// DEBUG purpose
$stmt->close();
$conn->close();

if ($row_count>0){
    $_SESSION['uName'] = $username;


    echo "Logged in";
    exit();
}else{
    echo "Wrong credentials";
    exit();
}

}
顺便说一句,我的表上有更多的行,这会影响整个过程吗?我的代码总是转到else语句。
mysqli\u结果对象([current\u field]=>0[field\u count]=>10[length]=>num\u rows]=>0[type]=>0)
这就是我如何确定它总是返回为0的。感谢您的帮助无需对密码进行哈希运算,只需返回值
>1
谢谢:D

<html>
<head>
    <title>Login</title>
</head>

<body>
    <form action = "" method = "post">
    <input type = "text" name="username"><br>
    <input type = "password" name = "password"><br>
    <input type = "submit" name = "submit" value = "Login">
    <a href = "register.php">Create Account</a>
    </form>
</body>
</html>

登录



这是表单。

切勿存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保对它们进行了清理或使用了任何其他清理机制。这样做会更改密码,并导致不必要的额外编码。我只想创建一个非常简单的登录,而不需要哈希密码。这可能吗@当然,这是可能的,只是不推荐。谁会想使用一个密码易于访问的站点?而不是
print\r($row\u count)您应该有
echo$row\u计数
$stmt->num_rows
返回一个整数,而不是一个数组。顺便说一句,我讨厌人们说“我没走那么远…”或“这个网站不会公开…”或“这只是学校用的,所以安全不重要…”。如果老师和教授从一开始就不谈论安全问题,那他们就是做错了。挑战他们。他们正在教授草率而危险的编码实践,学生们以后将不得不放弃这些实践。我也讨厌人们说“我以后再添加安全性…”或“安全性现在不重要…”。如果你第一次没有时间做正确的事情,你什么时候才能找到时间添加它呢?永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保对它们进行了清理或使用了任何其他清理机制。这样做会更改密码,并导致不必要的额外编码。我只想创建一个非常简单的登录,而不需要哈希密码。这可能吗@当然,这是可能的,只是不推荐。谁会想使用一个密码易于访问的站点?而不是
print\r($row\u count)您应该有
echo$row\u计数
$stmt->num_rows
返回一个整数,而不是一个数组。顺便说一句,我讨厌人们说“我没走那么远…”或“这个网站不会公开…”或“这只是学校用的,所以安全不重要…”。如果老师和教授从一开始就不谈论安全问题,那他们就是做错了。挑战他们。他们正在教授草率而危险的编码实践,学生们以后将不得不放弃这些实践。我也讨厌人们说“我以后再添加安全性…”或“安全性现在不重要…”。如果你第一次没有时间做正确的事情,你什么时候能抽出时间来添加呢?