MYSQL 准备好的语句 Select Row_Count

MYSQL Prepared Statements Select Row_Count

我有一个简单的SQL查询:

$stmt = $db_main->prepare("SELECT id FROM user WHERE username=? AND mail=? LIMIT 1");
$stmt->bind_param('ss', $username, $mail);
$stmt->execute();

我想知道它是否找到了用户。所以我想计算找到的行数。 我已经尝试使用 rowCount(对于 SELECT 不安全)或 num_rows 或只是查看结果 id 是否为数字(我希望 '' 不会是数字...)

必须有一种简单的方法来计算所选行,不是吗?

检查返回的行数:

$stmt->num_rows;

检查实例 this site.

p.s.:根据评论中的问题添加:使用 fetch() 以获得下一个记录。

...
$stmt->execute();
$stmt->bind_result($user_id); // access id
$stmt->store_result();        // optional: buffering (see below)

if ($data = $stmt->fetch()) {
    do {
        print("Id: " . $user_id); 

    } while ($data = $stmt->fetch());

} else {
    echo 'No records found.';
}

关于 documentation 中的 store_result()"You must call mysqli_stmt_store_result() for every query ..., if and only if you want to buffer the complete result set by the client ..."