在MySQL中选择所有行时出现问题

我对PHP还是很陌生,我正在尝试使用MySQL创建一个登录系统。我有一个用户注册的表单,它保存在称为寄存器的数据库表中。我已经有“登录验证”和所有这些内容。仅注册一个用户时,它可以正常运行。但是,当另一个用户注册时,SELECT事物仅选择第一个ro(第一个用户的pw),因此第二个用户无法登录,因为SELECT并不包括表的所有行。这是我的代码:

包括“ cn.php”;

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        $user = htmlspecialchars($_REQUEST["user"]);
        $u_password = htmlspecialchars($_REQUEST["password"]);
        $qry = "SELECT user,password FROM registers";
        $result = mysqli_query($conexion,$qry);
        $row = mysqli_fetch_array($result);

        $db_user = $row["user"];
        $db_password = password_verify($u_password,$row["password"]);

        if($u_password == $db_password) {
            echo "<script>alert('You are in')</script>";
        } else {
            echo "<script>alert('Error')</script>";
        }

    }

我的问题是:由于select仅检测第一行,因此我该如何选择寄存器中的所有行,在这种情况下,第一个用户已注册?

a786782040 回答:在MySQL中选择所有行时出现问题

在MYSQL查询中,您需要指定要从MySQL提取用户名的行。由于您未指定用户名,因此它会根据您的怀疑提取第一行。

代替:

$qry = "SELECT user,password FROM registers";

使用此:

$username_requested = mysqli_real_escape_string($conexion,$_REQUEST["user"]);
$qry = "SELECT user,password FROM registers where `user`='username_requested'";
本文链接:https://www.f2er.com/3155414.html

大家都在问