Функция sql COUNT возвращает массив вместо объекта mysqli?

0

Я хочу подсчитать несколько строк в моей базе данных, и я использую следующий код:

                $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, который я должен извлечь, используя mysqli_fetch_assoc?

Может ли кто-нибудь объяснить?

  • 0
    Вы понимаете, что используете метод do_query () объекта $ this, о котором мы ничего не знаем, верно? Расскажите нам, какие рамки / класс / ... это, если вы хотите, чтобы мы вам помогли.
  • 0
    Если это mysqli, почему ваш запрос не использует подготовленное утверждение? Ваше запястье должно быть надето, чтобы открыть себя для потенциальной инъекции SQL с помощью приведенного выше кода.
Теги:
object
arrays

1 ответ

0
Лучший ответ

Count возвращает только число, но вы выполняете оператор select sql, и это вернет что-то вроде набора строк, то есть кучу строк (в вашем случае 1) с элементом для каждого столбца (в вашем случае 1).

Точные детали зависят от языка программирования api, который вы используете.

  • 0
    Как я должен написать код, чтобы просто вернуть номер? я хочу вернуть количество повторяющихся строк thread_tag_map.tag_id
  • 0
    В принципе: возьмите первый элемент из набора результатов, извлеките единственное значение из ассоциативного массива. Я понятия не имею о точном синтаксисе, так как я даже не знаю язык, который вы используете. Это был бы хороший новый вопрос

Ещё вопросы

Сообщество Overcoder
Наверх
Меню