如何计算查询结果行数?

Posted

技术标签:

【中文标题】如何计算查询结果行数?【英文标题】:How do I count query result rows? 【发布时间】:2022-01-24 02:35:32 【问题描述】:

我应该将“查询结果行是否为 1 时验证的代码”替换为什么? 我尝试了很多使用 num_rows 的方法,但它不起作用。 我的 php 代码:

    $con=mysqli_connect("localhost","mbrconsu_un394x","y1cz9,rd+hf6","mbrconsu_mmx");

    if (mysqli_connect_errno($con))
    
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    

    $usuario = $con->real_escape_string($_GET['usuario']);
    $senha = $con->real_escape_string($_GET['senha']);

        $query = mysqli_query($con, "SELECT * FROM 'login' WHERE usuario = '$usuario' AND senha='$senha'");

        if(CODE TO VERIFY IF QUERY RESULT ROW IS = 1)
            while($row = mysqli_fetch_assoc($query))
                $db_username = $row['usuario'];
                $db_password = $row['senha'];
            
            if($usuario == $db_username && $senha == $db_password)
                return true;
            
             else 
            return false;
        

    mysqli_close($con);
?>

【问题讨论】:

您正在混合 mysqli 的过程和 OOP 版本。你应该期待一些不稳定。 【参考方案1】:
$query->num_rows;

mysqli_num_rows($query);

【讨论】:

【参考方案2】:

你可以使用:

$stmt=$mysqli->prepare("select `id` from `agahicustomer` where `city`=?");
    $stmt->bind_param("s",$cityid);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($id);
    return $stmt->affected_rows;
    $stmt->close();

【讨论】:

【参考方案3】:

你可以这样做

    if($row = mysqli_fetch_assoc($query)) 

    

您也可能希望将用户名和密码作为常量保存在一个文件中

【讨论】:

【参考方案4】:

你也可以使用这个 sql 查询:

Select count(*) from table

【讨论】:

以上是关于如何计算查询结果行数?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 中哪一个更快? COUNT(id) 还是计算结果行? [关闭]

Hibernate 查询sql结果行数的几种方法

在不使用子查询的情况下使用 SELECT DISTINCT ON 计算总行数

将 BigQuery 查询结果行写入 csv 文件时,某些记录重复

如何将 SQL 查询结果行作为具有不同标题名称的列? [关闭]

如何在全范围内平均减少 SQL 查询的结果行?