我有一个简单的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是否为数字(''不会,我希望...)
必须有一种简单的方法来计算选定的行,不是吗?
答案 0 :(得分:3)
检查返回的行数:
$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()
:
“你必须为每个查询调用mysqli_stmt_store_result()...,当且仅当你想要缓冲客户端的完整结果集时......”