Попытка получить свойство не-объекта в NotORM

#php #notorm

#php #notorm

Вопрос:

Я использую Slim Framework и NotORM в своем проекте системы мониторинга продаж. Когда я запускаю свою программу, я получаю ошибку Slim Application: "Trying to get property of non-object" on line 179 .

Я не могу исправить ошибку.

вот мой код:

 $select = $db->pssale->select("F8")->where("F8 = ?","$textdate")->fetch();
                            $count = count($select);
  

Комментарии:

1. Обычно означает, что вы пытаетесь получить доступ к чему-то (свойству объекта), которое не задано. Что, скорее всего, означает, что ваш запрос не выполняется ( fetch() не предоставляет данных или массива).

2. Что var_dump($select); вам дает?

3. Я пытаюсь это сделать, сэр, но это выдает мне то же сообщение об ошибке.

4. означает, что база данных пуста?

Ответ №1:

Когда записи не найдены, функция fetch() возвращает false. Ваш код вычисляет count(false).

просто удалите — >fetch() поскольку вы хотите подсчитывать строки в наборе результатов, а не столбцы в одной записи.

 $count = count($db->pssale("F8", $textdate));
  

На самом деле, самым чистым способом может быть :

 $count = $db->pssale("F8", $textdate)->count("F8");
  

Поскольку я думаю, что этот код точно сгенерирует SQL-запрос, который вы хотите.

Если вы пытаетесь подсчитать различные значения F8, на этот раз вы можете написать:

 $count = $db->pssale("F8", $textdate)->count("DISTINCT F8");
  

Взгляните на http://www.notorm.com/#api ; это не так сложно прочитать.

Примечание: Я думаю, вы не поняли, что вам не нужно «выполнять» запрос, чтобы получить результат. NotORM отвечает за выполнение запроса, как только это потребуется. Не ставьте fetch() здесь и там, если вы действительно не хотите получить одну запись из запроса (без цикла foreach).