如何从数据库中获取值

How to get value from database

我正在创建一个社交网络。用户可以拥有经过验证的帐户。如果 verified_user 列的值为 1,则表示用户已通过验证,我想回显 verified。如果值为 0,我想回显 not verified。我有一个应该获取所有这些数据的方法和一个应该回显该方法给出的内容的对象。但它一直在回显 Not verified,即使值显示为 1。有人能告诉我哪里出了问题吗?

public function verifiedUser($user_to) {

    $query = $this->con->prepare("SELECT verified_user FROM users WHERE username = ?");
    $query->bind_param("s", $this->user['username']);
    $query->execute();
    $query->bind_result($verified_user);
    $query_result = $query->get_result();

    if ($verified_user == 1) {

        return true;

    } else {

        return false;
    }

}

if($logged_in_user_obj->verifiedUser($username)) {

    echo "Verified";
} else{

        echo "Not Verified";
    }

我也试过 num_rows 但结果和现在一样。

您需要使用存储在$query_result中的结果或通过绑定到变量并获取它来获取实际值。

如果你想使用 get_result() 然后做:

public function verifiedUser(string $user_to): bool {
    $query = $this->con->prepare("SELECT verified_user FROM users WHERE username = ?");
    $query->bind_param("s", $user_to);
    $query->execute();
    $query_result = $query->get_result();
    $row = $query_result->fetch_assoc();

    if ($row && $row['verified_user'] == 1) {
        return true;
    }
    return false;
}

如果您想使用 bind_result 则执行此操作:

public function verifiedUser(string $user_to): bool {
    $query = $this->con->prepare("SELECT verified_user FROM users WHERE username = ?");
    $query->bind_param("s", $user_to);
    $query->execute();
    $query->bind_result($verified_user);
    $query->fetch();

    return $verified_user == 1;
}