php - 使用 php 运行 MYSQL SELECT 查询

标签 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);

最佳答案

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

所以,你可以这样做......

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

然后您可以从那里处理如何处理它。

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

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

然后也在您准备好的语句中传递来自 POST 的密码。

关于php - 使用 php 运行 MYSQL SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40369821/

相关文章:

php - 服务器未检测到 CSS 样式表路径 404 未找到错误?

php - 如何弃用 PHP 中的函数?

mysql - 一个返回true/false的sql函数,存在一些数据计算问题

php - 使用 PHP 的 mysqli 执行准备好的语句的正确和最简单的方法是什么?

php - mysqli_close() 除了销毁对象之外还执行其他操作吗?

php - 使用PDO连接方式

php - 无法在输出中获得预期的字体

使用 jQuery 的 Javascript 表单验证有时不起作用

mysql - 为什么 write_host 不被识别为命令

mysql - 如何从 gitlab 源库迁移到 gitlab 综合库?