php - 查看 mysql 中是否返回行的不同方法?

标签 php mysql mysqli

我不确定是否有类似的问题,因为我不确定要搜索什么,但无论如何。

在执行查询(有 1 个表)后,我可以通过两种方法检查是否返回了一行:

$a = $members->prepare("select userid from users where userid = ?");
$a->bind_param('s', $_SESSION['token']);
$a->execute();
$a->store_result();
if ($a->num_rows == 1) {
    // do something
}

或者:

$b = $members->prepare("select userid from users where userid = ?");
$b->bind_param('s', $_SESSION['token']);
$b->execute();
$b->bind_result($uid);
$b->fetch();
if (isset($uid)) {
    // do something
}

哪一个最适合用来查看是否返回了一行?我认为因为 num_rows 就是用于此目的,所以应该使用它,但是您必须存储结果集,所以我不确定,谢谢。

最佳答案

第一个选项可能是最好的。顺便说一下,来自 php.net:

mysqli_store_result() returns FALSE in case the query didn't return a result set

This function also returns FALSE if the reading of the result set failed.

所以你也可以说:

if ($a->store_result()) {
    // do something
}

关于php - 查看 mysql 中是否返回行的不同方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759764/

相关文章:

php - 使用 CSV 的第一行作为数组键

php - MySQLi + PHP 按日期和 ID 降序排序

PHP Mysqli 从数据库中删除

php - PHP OOP 中的未定义属性错误消息

php - 我的 SQL 语法有错误? MySQLi 的麻烦

php - beforeSave 与 Yii2 中的更新操作相同

php - 如何即时更改 Yii 错误处理程序?

php - 如何获取数组中不重复的元素?

python - 在 Mysql 过程中循环遍历字符串

php - 在 mysql 更新查询中使用两个具有不同键的数组