在后续查询mysqli中使用bind_result的PHP登录脚本

时间:2017-07-04 20:11:00

标签: php mysqli login

我正在尝试构建一个相对简单的PHP登录脚本来连接到我的家庭服务器上运行的MySQL数据库。我知道连接有效,因为我已经按照我的预期得到了一些数据。但是,我无法使完整的脚本工作。

基本上,我从用户那里获取用户名/密码,然后我首先进行查找以从user_id表中获取users。然后,我想使用user_id值来对user_pswd表进行比较(我将用户名和密码存储在不同的数据库表中)。有一次,我能够根据用户名输入回显正确的user_id。但是我还没有能够解决所有问题,因为我对PHP很陌生,并且因为我从远程桌面将其加载到我的服务器上而不知道在哪里看到错误。任何人都可以为我的代码提供一些建议/更正吗?

最终结果是我想将用户发送到另一个页面,但回声"测试"只是为了看看我是否可以得到这么多工作。非常感谢你的帮助!

<?php

ob_start();

$con = new mysqli("localhost","username","password","database");

// check connection
if (mysqli_connect_errno()) {
  trigger_error('Database connection failed: '  . $con->connect_error, E_USER_ERROR);
}

$users_name = $_POST['user'];
$users_pass = $_POST['pass'];

$user_esc = $con->real_escape_string($users_name);
$pass_esc = $con->real_escape_string($users_pass);

$query1 = "SELECT user_id FROM users WHERE username = ?;";

if ($result1 = $con->prepare($query1)) {

    $result1->bind_param("s",$user_esc);

    $result1->execute();

    $result1->bind_result($userid);

    $result1->fetch();

    $query2 = "SELECT user_pswd_id FROM user_pswd WHERE active = 1 AND user_id = ? AND user_pswd = ?;";

    if ($result2 = $con->prepare($query2)) {

        $result2->bind_param("is",$userid,$pass_esc);

        $result2->execute();

        $result2->bind_result($userpswd);

        $result2->fetch();

        echo "test", $userpswd;

        $result2->free_result();

        $result2->close();

    } else {
        echo "failed password";
    }

    $result1->free_result();

    $result1->close();
}


$con->close();

ob_end_clean();

?>

0 个答案:

没有答案