mysqli_fetch_array($ result,MYSQLI_NUM);

时间:2018-08-25 09:04:06

标签: php mysqli login

1未返回值。检查它是否存在SQL错误,没有发现。我猜PHP或函数中有些错误。请帮我改正。

w

1 个答案:

答案 0 :(得分:0)

编辑:正如劳伦斯正确指出的那样,我错过了可变范围问题。 mysqli_query无权访问$conn变量。


尝试检查$result中返回的行数:

echo $result->num_rows;

或将其打印到日志(如果有)。不确定如何检查mysqli_fetch_array不会返回值-请尝试var_dump()print_r()

很少提出其他建议:

  • 您的问题中的两个查询都从同一张表中选择-user_data-单独进行操作效率很低(除非id_from_username在其他地方通常使用),我将其合并为一个查询一次将其选中:

    user_id的{​​{1}}中选择passworduser_data ...

  • 使用mysqli_query并将用户输入串联到查询中通常是一个坏主意。不确定sanitize函数的作用,但我仍然会使用变量绑定,即使mysqli支持mysqli_prepare,请参见here

  • 根据您的代码,您正在使用md5将密码存储在数据库中。这是非常不好的做法。自PHP 5.5.0起,PHP提供了非常出色的功能password_hashpassword_verify,它们将为您处理密码哈希,使您的应用程序更加安全。