【问题标题】:How to return integer of COUNT mysql query result in PHP [duplicate]如何在PHP中返回COUNT mysql查询结果的整数[重复]
【发布时间】:2021-03-04 02:56:29
【问题描述】:

我只是将一个简单的 PHP 程序放在一起,它只计算数据库中的总行数,并在收到来自我的前端的 get 请求时将结果作为 JSON 对象返回。

这一切都应该非常简单,但对于我来说,我无法弄清楚如何以可用格式检索计数结果。我从中得到的只是“空”

有什么想法吗?

$con = mysqli_connect($servername, $username, $password, $dbname);
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

$query="SELECT COUNT(*) FROM database";
$result = mysqli_query($con,$query);
$count = mysqli_fetch_assoc($result);
echo json_encode($count);

【问题讨论】:

    标签: php mysql mysqli count


    【解决方案1】:

    您可以使用COUNT as 来避免很长的键。

    这是一个代码示例

    $sql = "SELECT COUNT(column) as count FROM mytable";
    $stmt = mysqli_stmt_init($db);
    mysqli_stmt_prepare($stmt, $sql);
    
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    $count = mysqli_fetch_assoc($result)['count'];
    
    echo $count;
    

    要以 JSON 格式显示数据,您可以试试这个:

    echo json_encode(['count' => $count])
    

    【讨论】:

      【解决方案2】:

      这本身不会给你计数。 我建议你开始使用 MySQL 对象方法而不是函数。

      您还应该使用“as”语句为具有计数值的列命名;在我的示例中,该列将被称为 C 。

      $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
      
      if ($mysqli->connect_errno) {
          printf("Connect failed: %s\n", $mysqli->connect_error);
          exit();
      }
      
      $query = "SELECT COUNT(*) as C FROM database";
      
      if ($result = $mysqli->query($query)) {
          /* fetch associative array */
          $row = $result->fetch_assoc();
          echo $row["C"];
      }
      

      编辑: 在 SELECT COUNT 的特定情况下,您只会得到 1 行,因此对于这个特定示例,您可以只执行 fetch_assoc()。

      【讨论】:

      • 如何从SELECT COUNT 查询中获得多个结果?
      • 这不是我的意思,在这种情况下,你只会得到 1 行结果,但一般来说,当你执行查询时,你不知道你会得到多少行得到。我会更新我的文字,让它更清楚一点。
      • 我反对手动错误检查。请让我们开始教人们如何启用自动错误报告。
      • @Dharman 这不是本文的目的,这与 PHP 文档中的内容完全相同,您可以在 php.net/manual/en/mysqli-result.fetch-assoc.php 上进行验证。随心所欲。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 2015-06-11
      • 2019-08-08
      相关资源
      最近更新 更多