我有一个简单的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是否为数字(我希望这不是'‘)。
必须有一种简单的方法来计算所选的行,不是吗?
发布于 2015-03-28 18:19:08
检查返回的行数:
$stmt->num_rows;例如,检查本站。
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.';
}对于来自store_result()的文档:“必须为每个查询调用mysqli_stmt_store_result(),当且仅当您希望缓冲客户端的完整结果集时.”
https://stackoverflow.com/questions/29320715
复制相似问题