【问题标题】:Writing the NotORM Syntax编写 NotORM 语法
【发布时间】:2014-07-04 03:18:33
【问题描述】:

我在 NotORM 代码中遇到了问题。

这段代码运行良好:

$select = $db->pspaym->select("COUNT(*)")->where("F4","$textdate")->fetch(); $count = count($select);

但是这里的代码不起作用:

$select = $db->pssale->select("COUNT(*)")->where("F8","$textdate")->fetch(); $count = count($select); 这段代码有一个错误信息说:

"试图获取非对象的属性"

无法解决此问题。

所有变量都不为空。

谢谢。

【问题讨论】:

  • 第二个例子中 $db 是在哪里定义的?
  • $db 来自 dbcon.php。然后我将 $db 声明为全局。这是代码:global $db
  • 我在声明代码的文件页面顶部声明了全局$db。
  • 我现在看到了问题。当我回显上面声明的第一个代码时,它回显了$textdate,但第二个代码没有回显$textdate。我不知道为什么会这样。
  • 我现在看到了错误,先生。似乎当我在全局 $db 上方声明 echo $textdate 时,日期出现了。这是代码: function count_sales($textdates) { echo $textdates;全局$db; $select = $db->pssale->where("F8 = ?", $textdates)->fetch(); $count = count($select);回声计数($select);

标签: php slim notorm


【解决方案1】:

如果您想计算表格中的行数,只需使用:

$select = $db->pspaym->where("F4","$textdate");
$count = count($select);

问题来自您的fetch()count() 方法的组合。由于结束 fetch 调用,$select 不包含 Table 对象,而是包含 Record 对象。

所以count($select) 将计算您记录中的列数。通常,它应该总是返回 1(因为返回记录中有一个字段)。

为了您的信息,如果您想要无用的明确,您可以这样做。

$record = $db->pspaym("F4","$textdate")->select("COUNT(*) AS c")->fetch();
$count = $record['c'];

但是,这是很长的路要走。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2017-11-08
    • 2012-11-17
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    相关资源
    最近更新 更多