【问题标题】:sql COUNT function returns an array instead of mysqli object?sql COUNT函数返回一个数组而不是mysqli对象?
【发布时间】:2010-12-24 01:28:10
【问题描述】:

我想计算我的数据库中的一些行,我正在使用以下代码:

                $tagname = Person;
                $query = "SELECT COUNT(thread_tag_map.tag_id) AS tagcount
                        FROM tags, thread_tag_map
                        WHERE thread_tag_map.tag_id = tags.id
                        AND tags.name = '$tagname'";

                $result = $this->do_query($query);


                return $result;

当我使用 print_r($result) 时,它会显示一个关联数组 Array ( [tagcount] => 3 )。

不应该是我必须使用 mysqli_fetch_assoc 提取的 mysqli 对象吗?

谁能解释一下?

【问题讨论】:

  • 您确实意识到您正在使用我们一无所知的 $this 对象的 do_query() 方法,对吧?如果您希望我们帮助您,请告诉我们是什么框架/类/...。
  • 如果这是 mysqli,为什么您的查询不使用准备好的语句?你的手腕应该被拍打,因为上面的代码让你自己暴露在潜在的 SQL 注入中。

标签: sql mysql arrays object


【解决方案1】:

Count 只返回一个数字,但您正在执行一个 sql select 语句,这将返回类似于行集的内容,即一堆行(在您的情况 1 中),每列都有一个元素(在您的情况 1 中)。

具体细节取决于您使用的编程语言和 api。

【讨论】:

  • 我应该如何编写代码来只返回一个 nr?我想返回对 thread_tag_map.tag_id 重复行的计数
  • 原则上:取结果集的第一个元素,从关联数组中提取单个值。我不知道确切的语法,因为我什至不知道您使用的语言。这将是一个很好的新问题
猜你喜欢
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 2020-05-06
相关资源
最近更新 更多