密码验证帮助PHP

时间:2018-01-23 22:20:34

标签: php mysqli

我是PHP的新手,只是在大学时一边玩它。我已经决定为魔兽世界制作一个公会网页,并且在围绕一些概念时遇到了问题。主要有以下几点。

$res=mysqli_query("SELECT userId, userName, userPass FROM users WHERE userEmail='$email'");
$row=mysqli_fetch_array($res);
$count = mysqli_num_rows($res);

据我所知,变量$ count应该是1。它连接到数据库ok,我的注册页面将详细信息添加到表中,所以我知道所有这些都有效。

为简单起见,数据库中只有1个条目。只有3列,userId userName和userPass。但由于某种原因,以下if语句返回false并执行else。

if($count == 1)

任何能够解释sql结果如何进入数组的人都可以吗?提前谢谢!

2 个答案:

答案 0 :(得分:5)

如果您撰写的只有3列的内容正确无误,那么您的查询就会出现问题。

但是,您应该学习转储变量以查看它们实际包含的内容。这将帮助您调试代码。通过撰写$rowvar_dump($row);来查看var_dump($count)包含的内容。

如果如你所说,数据库中只有3列:userId userNameuserPass,那么userEmail将无法获得任何匹配,因为那里没有列实际命名为userEmail

答案 1 :(得分:3)

当你使用mysqli时,你需要在第一个语句的开头定义连接 - 它应该是这样的:

$res=mysqli_query($conn,"SELECT userId, userName, userPass 
FROM users WHERE userEmail='$email'");