查询返回null并期望为1

时间:2019-01-06 09:39:54

标签: php unity3d mysqli

这是一个名称检查,与我的数据库中的用户检查用户名时,预期结果为1。

不幸的是,我得到一个空响应(所以回显错误5)。请,如果有人看到PHP的问题,我非常感谢

代码

$username = $_POST["name"];
$password = $_POST["password"];
$namecheckquery = "SELECT username FROM users WHERE username = ' " . $username . " ' ";

$namecheck = mysqli_query($con, $namecheckquery) or die("2: name check query failed"); // error code #2 = name check query failed
if(mysqli_num_rows ($nameCheck) !=1)
{
    echo "5: Either no user with name, more than one."; //error code number 5 number names does not match one
    exit();
}

1 个答案:

答案 0 :(得分:0)

如果您打印查询,您会注意到$ username周围有空格,除非您将用户名插入这些空格,否则您不会得到结果。

当您输入John作为用户名时查询字符串错误:

SELECT username FROM users WHERE username = ' John '
//                             Wrong spaces  ^    ^

删除双引号和单引号之间的空格:

$namecheckquery = "SELECT username FROM users WHERE username = '" . $username . "'";

更好的是,删除空格并避免串联:

$namecheckquery = "SELECT username FROM users WHERE username = '$username'";

当双引号之间包含一个字符串时,PHP将用相应的值替换变量。

最后,查询未返回null,函数mysqli_num_rows($ nameCheck)返回0,因为未找到匹配项。