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

PHP自定义命名空间下创建mysqli对象报类未找到错误如何解决?

报错根因

你的代码位于Mysql\NewLib自定义命名空间下,PHP在当前命名空间中实例化类时,默认会优先查找当前命名空间下的类定义。mysqli是PHP内置的全局命名空间类,未指定命名空间前缀时系统会将其识别为Mysql\NewLib\mysqli,找不到对应类就抛出该报错。

解决方案

二选一即可:

  • 方案1:实例化时添加全局命名空间前缀
    修改new_lib.php中mysqli实例化的代码,在类名前加\明确指定调用全局命名空间下的mysqli类:
// 原代码
// $this->mysql_client = new mysqli($creds['host'], $creds['user'], $creds['pwd'], $creds['db_name']);
// 修改后代码
$this->mysql_client = new \mysqli($creds['host'], $creds['user'], $creds['pwd'], $creds['db_name']);
  • 方案2:文件顶部use声明引入全局mysqli类
    在new_lib.php的命名空间声明后添加use引入,原有实例化代码无需改动:
<?php
namespace Mysql\NewLib;
use mysqli; // 新增这一行
interface NewLibMethods {
}
// 后续原有代码保持不变
额外排查项

如果修改后仍报错,按以下步骤验证:

  • 确认PHP环境已安装启用mysqli扩展:执行命令php -m | grep mysqli,有输出则代表扩展已启用,也可通过phpinfo()页面搜索mysqli项确认。
  • 确认代码中命名空间、类名拼写无错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:54:04