【问题标题】:Error instantiating MongoDate inside PHP class Method MongoDate::__toString() must not throw an exception in在 PHP 类方法 MongoDate::__toString() 中实例化 MongoDate 时出错,不能在
【发布时间】:2015-04-18 07:28:13
【问题描述】:

我有以下代码来创建一个使用 Mongo 的自定义类

class MongoHandler{
    protected $col = NULL;
    protected $db;
    protected $timestamp;

    public function __construct($db_version) {
        // opening db connection
        $db = new MongoConnection();
        $this->db = $db->getMongoCon($db_version);
        $this->timestamp = new MongoDate();
    }
}

但是 $this->timestamp = new MongoDate() 产生以下错误:

PHP 消息:PHP 致命错误:方法 MongoDate::__toString() 不得 在"中抛出异常

我想在我与 mongo 交互的所有方法中使用这个时间戳(插入/更新)。

【问题讨论】:

  • 你需要捕获异常才能找到问题所在。扩展MongoDate 并覆盖__toString() 方法,在那里捕获异常。然后登录,或者干脆return $e->getMessage()

标签: php mongodb


【解决方案1】:

在你的 php.ini 中添加 mongo php 扩展:

  extension=mongo.so

【讨论】:

  • 我很确定这不是问题所在。如果是这样的话,PHP 会抱怨 MongoDate 根本不存在。 (那样,用户可能会更早遇到问题......)
  • 这就是我昨天遇到的情况,它确实解决了我的问题
猜你喜欢
  • 2017-06-24
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多