返回PDO连接失败:Engine\db\PDO类未找到错误求助
PDO类找不到错误的排查与解决
错误信息
Fatal error: Uncaught Error: Class "Engine\db\PDO" not found in C:\Server\privatefolder\MVC\Engine\db\sqliteAdapter.php:21
你的代码
public function conn() { return new PDO('sqlite:' . $this->file); }
错误原因
你的sqliteAdapter.php文件位于Engine\db命名空间下,PHP默认会在当前命名空间内查找PDO类,但PDO是PHP内置的全局命名空间类,因此会出现类找不到的错误。
解决方法
方法1:指定全局命名空间前缀
在PDO类名前添加反斜杠\,明确告知PHP去全局命名空间查找该类:
public function conn() { return new \PDO('sqlite:' . $this->file); }
方法2:导入PDO类
在文件的命名空间声明之后,使用use语句导入全局命名空间的PDO,之后就可以直接使用PDO类名:
namespace Engine\db; use PDO; class sqliteAdapter { public function conn() { return new PDO('sqlite:' . $this->file); } }
内容的提问来源于stack exchange,提问作者Spices Perosman
相关产品推荐
相关产品推荐

