【问题标题】:Counting MySQL duplicate rows using PHP returns error [duplicate]使用 PHP 计算 MySQL 重复行返回错误 [重复]
【发布时间】:2014-08-08 00:29:24
【问题描述】:

我正在尝试计算数据库中的行数,并显示数据库中有多少行包含重复项。但是,我收到以下错误:

Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\SPARTAN-ver2\pages\scenario_card.php on line 203

这是我使用的PHP

$countQuery = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
$count = mysqli_query($db, $countQuery) or die(mysqli_error($db));
echo $count;

这是 SQL 表头的样子

SYSTEMS         DESCRIPTIONS            BREAKERS
APU             APU Power Fail          APU [1]
APU             APU Starter Engaged     APU [7]
APU             APU Hot Start           APU [5]
AVIONICS        ADS 1 Fail              AVIONICS[1]

这个错误是什么意思,我做错了什么?因为当我在 PHPMyAdmin 中运行查询时,我得到了正确的输出,应该是

BREAKERS        NUM
APU [1]         3
APU [5]         1
APU [7]         1
AVIONICS[1]     2

【问题讨论】:

    标签: php mysqli


    【解决方案1】:

    代替“echo $count”,尝试“var_dump($count)” .. 然后你会看到,你有一个对象,不是字符串或整数。

    错误提示,您无法将该对象转换为字符串。

    使用包含字符串的对象的属性(最有可能的结果或类似的东西)。

    【讨论】:

      【解决方案2】:

      你必须这样做:

      $sqlCommand = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
      $query = mysqli_query($db, $sqlCommand) or die(mysqli_error($db));
      while ($row = mysqli_fetch_array($query)) {
         print_r($row);
      }
      

      关于http://www.php.net/manual/en/mysqli-result.fetch-array.php

      您还可以使用其他已实现的方法从 mysqli_query 获取数据。 mysqli_fetch_row()、mysqli_fetch_object()、mysqli_fetch_assoc()...

      【讨论】:

        【解决方案3】:

        来自mysqli_querythe documentation

        返回值

        失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询 mysqli_query() 将返回 mysqli_result 对象。为了 其他成功的查询 mysqli_query() 将返回 TRUE。

        mysqli_query 获得返回后,您可以使用mysqli_fetch_* 函数(例如mysqli_fetch_arraymysqli_fetch_assoc)来检索数据本身。

        您的最终结果将类似于:

        $countQuery = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
        $rtn = mysqli_query($db, $countQuery) or die(mysqli_error($db));
        $counts = mysqli_fetch_assoc($rtn);
        echo $counts['breakers'];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-17
          • 2016-12-22
          • 2013-08-03
          • 2020-05-17
          • 1970-01-01
          相关资源
          最近更新 更多