#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).