【问题标题】:Catchable fatal error: Object could not be converted to string可捕获的致命错误:无法将对象转换为字符串
【发布时间】:2012-08-02 22:47:02
【问题描述】:

在我的 Zend Framework 应用程序中,我收到此错误:

Catchable fatal error: Object of class User could not be converted to string in /home/trengine/domains/completeset.us/application/models/User.php on line 121

第 121 行是这个 mySql 查询中的 where 子句:

$query = "SELECT first,
                         last,
                         email,
                         gender,
                         user_type,
                         country,
                         state,
                         province,
                         city,
                         DATE_FORMAT(birthday, '%m/%d/%Y') AS birthday,
                         facebook_id
                         FROM users
                         WHERE user_id = '{$this->id}'";

【问题讨论】:

  • $this->id 可能已意外转换为 User 类,无论哪种方式,您使用的东西实际上都有一个对象,它应该是一个字符串,尝试使用 PHP 调试器或 var_dumping $this->id
  • 我认为你是对的 Sammaye。
  • @hakre 这种情况略有不同,我的错误是 id 被设置为一个对象。在您链接的问题中,似乎他们试图访问不带括号的对象属性,因此它试图将 $object 转换为字符串,然后将 -> 属性视为字符串文字,至少据我所知。

标签: string string-concatenation php


【解决方案1】:

在调用数据库之前放置:

var_dump($this->id);

这将显示您正在处理的变量类型。很可能 id 已被强制转换为沿线某处的对象。

另外,我提前道歉......但您应该查看 Zend DB Table Abstract 并从中扩展。您会发现对项目进行所需的任何更改都会变得容易得多。

【讨论】:

  • 是的,就是这样,一页将 id 设置为对象。而且我已经在使用 Zend DB Adapter,我只是发现将大部分查询写出来更容易。
猜你喜欢
  • 2015-03-08
  • 2013-08-07
  • 2017-05-03
  • 1970-01-01
  • 2018-03-12
  • 2014-02-21
  • 1970-01-01
  • 2015-11-21
相关资源
最近更新 更多