使用ZingChart PHP Wrapper连接数据库时遇mysqli类未找到错误求助
解决思路:命名空间导致的全局类调用问题
从错误信息Class 'ZingChart\PHPWrapper\mysqli' not found就能精准定位问题:你在ZingChart\PHPWrapper命名空间内直接调用mysqli类时,PHP会默认在当前自定义命名空间下查找这个类,但mysqli是PHP的全局内置类,并不属于这个命名空间。
具体修复步骤
找到zc.php的第69行,将原代码:
$this->mysqli = new mysqli($host, $username, $password, $dbName, $port);
修改为:
$this->mysqli = new \mysqli($host, $username, $password, $dbName, $port);
只需要在mysqli前添加反斜杠\,就能告诉PHP去全局命名空间中查找这个内置类。
为什么普通数据库连接代码能正常运行?
你的测试代码db.php没有定义任何命名空间,默认处于全局命名空间下,所以直接new mysqli()可以正确找到全局类;而ZingChart的PHP Wrapper封装在ZingChart\PHPWrapper命名空间内,必须显式指定全局空间才能调用PHP内置类。
修改完成后重新运行index.php,应该就能顺利通过connect方法建立数据库连接了。
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

