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 ..."
我有一个简单的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 ..."