PHP Prepared语句返回错误的值

时间:2018-06-07 20:50:35

标签: php mysqli

我试图找出我的数据库中是否存在用户,但无论我尝试什么,我总是得到相当于假的。

$stmt = $connection->prepare("SELECT * FROM members WHERE member_username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();

if($stmt->num_rows > 0) {
    return 'user exists';
}

我知道这必须是非常简单的东西......我明显忽略了一些东西,但我总是得到num_rows = 0,即使用户已经在数据库中了。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

在致电get_result()之前致电store_result()num_rows

$stmt = $connection->prepare("SELECT * FROM members WHERE member_username = ?");    
$stmt->bind_param("s", $username);
$stmt->execute();
$res = $stmt->get_result(); //<--- HERE

if($res->num_rows > 0) { //<--- HERE
    return 'user exists';
}

OR

$stmt->execute();
$stmt->store_result(); //<--- HERE

if($stmt->num_rows > 0) {