You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB ReadPreference构造函数弃用警告致系统异常求助

解决方案:MongoDB ReadPreference 弃用错误修复

错误原因

这个报错是因为系统调用MongoDB\Driver\ReadPreference::__construct时用了整数参数指定读取模式,这种写法已被MongoDB PHP扩展弃用,现在要求用常量名称或字符串来指定模式。

具体修复步骤(适合非编程人员操作)

  • 找到系统目录下的src/functions.php文件,用普通文本编辑器(比如记事本、Notepad++,别用Word)打开
  • 跳转到第532行,找到类似这样的代码:
    new MongoDB\Driver\ReadPreference(1); // 这里的1是示例,你的代码里可能是其他整数
    
  • 把代码里的整数替换成对应模式的常量或字符串:
    旧整数对应推荐常量对应字符串
    0MongoDB\Driver\ReadPreference::RP_PRIMARY'primary'
    1MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED'primaryPreferred'
    2MongoDB\Driver\ReadPreference::RP_SECONDARY'secondary'
    3MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED'secondaryPreferred'
    4MongoDB\Driver\ReadPreference::RP_NEAREST'nearest'
    举个例子:如果原代码是new MongoDB\Driver\ReadPreference(1);,就改成:
    new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED);
    
  • 保存修改后的文件,重启网站服务(比如Apache、Nginx),如果是桌面程序就直接重启程序

注意事项

如果不知道原整数对应哪种模式,优先替换成MongoDB\Driver\ReadPreference::RP_PRIMARY(大部分系统默认都是主节点优先),要是替换后仍有问题,再尝试其他模式。

内容的提问来源于stack exchange,提问作者user28459108

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:33:15