未捕获异常';MongoException';带有消息';无效的对象ID';


Uncaught exception 'MongoException' with message 'Invalid object ID'

我有一个PHP代码,它运行得很好,但在我为PHP(1.4.2)更新了Mongo(2.4.4)和Mongo驱动程序后,我的代码开始产生致命错误。

产生错误的线路是这个

$something = new MongoId($some);

它生成一个错误:

Fatal error: Uncaught exception 'MongoException' with message 'Invalid object ID'

当然,我可以回滚我的更新,但有什么办法可以在不回滚的情况下修复它吗?

这个错误很可能是因为您提供了错误的$some。现在您必须将正确的MongoID传递给new MongoId()构造函数。

所以new MongoId('51e1eefc065f908c10000411')是可以的,但new MongoId('-6')会产生您的错误。

我用try-catch来处理这个问题。

try {
    $something = new MongoId($some);
} catch (MongoException $ex) {
    $something = new MongoId();
}

所以我认为这个文档有点过时了,应该进行更改。

相关文章: