无法弄清楚为什么mysqli_num_rows不能解决我的问题

时间:2013-07-04 00:01:16

标签: php mysqli mysql-num-rows

function userexists($username){
    $query=$mysqli->query("SELECT username FROM accounts WHERE username='$username' AND exists=1");
    return mysqli_num_rows($query);
}

此函数应该返回1或0,但我无法弄清楚为什么不解释查询。怎么了?

编辑:php返回的错误是$ query是一个被输入mysqli_num_rows的布尔值,而不是一个对象。

1 个答案:

答案 0 :(得分:2)

在您的查询中:

SELECT username FROM accounts WHERE username='$username' AND exists=1"

exists是一个MySQL关键字。如果您已将其用作列名,那么您将收到语法错误。您可以将列名称括在后面,如下所示:

SELECT username FROM accounts WHERE username='$username' AND `exists`=1"

更改列名和查询可能更安全。

小心可能的SQL注入攻击。至少应该使用mysqli_real_escape_string($username)

来转义任何用户提供的数据