【问题标题】:Trying to get property of non-object on NotORM试图在 NotORM 上获取非对象的属性
【发布时间】:2014-07-03 08:28:35
【问题描述】:

我在销售监控系统项目中使用Slim FrameworkNotORM。当我运行我的程序时,我收到一个 Slim 应用程序错误:"Trying to get property of non-object" on line 179

我无法修复错误。

这是我的代码:

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

【问题讨论】:

  • 通常意味着您正在尝试访问未设置的某些内容(对象的属性)。这很可能意味着您的查询失败(fetch() 不提供数据或数组)。
  • var_dump($select); 带给你什么?
  • 我试试那个先生,但它给了我同样的错误信息。
  • 表示数据库为空?

标签: php notorm


【解决方案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 负责在需要时立即运行查询。除非您真的想从查询中获取一条记录(没有 foreach 循环),否则不要到处乱放fetch()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    相关资源
    最近更新 更多