使用php运行MYSQL SELECT查询

时间:2016-11-01 22:50:45

标签: php mysql mysqli

我正在尝试在名为test2的表上运行select语句。这是一个非常简单的用户名和密码列表。我不明白如何访问查询的结果。我希望能够检查通过POST表单发送的用户名和密码是否与我的test2表中的用户名和密码相匹配。现在我只是想让查询工作并打印出结果。我从这里的文档http://php.net/manual/en/mysqli-stmt.get-result.php

获得了大部分代码
    $link = mysqli_connect(HOST,USERNAME,PASSWORD,DBNAME) or die ("Connect Error" . mysqli_error($link));

    $query = "SELECT username, password FROM test2 where username =? AND password =?";

    $stmt = mysqli_stmt_init($link);
    if(!mysqli_stmt_prepare($stmt, $query))
    {
            print "Failed to prepare statement\n";
    }

    else{
        mysqli_stmt_bind_param($stmt,"ss", $_POST['user'], $_POST['pw']);

        mysqli_execute($stmt);

        $result = mysqli_stmt_get_result($stmt);


        $numRows = $result->mysqli_num_rows;
        if ($numRows == 1){
            echo "User exists";
        }else{
            echo "No users";
        }
    }
    mysqli_close($stmt);

    mysqli_close($link);

1 个答案:

答案 0 :(得分:0)

对于那个查询,你需要知道的是,是否返回了任何行,而不是行对象的值。

所以,你可以做......

$numRows = $result->mysqli_num_rows;
if ($numRows == 1){
    echo "User exists";
}else{
    echo "No users";
}

然后你可以从那里处理它的用途。

但是,如果您确实要对用户进行身份验证,那么您的查询应该是......

 SELECT ID from test2 WHERE username=? AND password=?

然后在准备好的陈述中传递POST的密码。