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

使用pdo_object.php连接SQL数据库时遇Class 'Db'未找到错误求助

解决Class 'Db' not found错误的几种常见思路

看起来你遇到的是PHP类加载的典型问题,结合你提供的信息,下面是几个大概率能解决问题的方向:

1. 确认Db类是否在pdo_object.php中定义,且model.php已正确引入该文件

从你给出的pdo_object.php片段来看,里面只创建了PDO实例,但完全看不到Db类的定义。如果Db类应该在这个文件里,你需要补充类的结构,比如:

<?php
class Db {
    private $pdo;

    public function __construct() {
        $user = 'someusername';
        $pass = 'somepassword';
        $db_info='somehost'; // 注意这里通常是类似"mysql:host=localhost;dbname=your_db"的DSN格式
        try {
            $this->pdo = new PDO($db_info, $user, $pass);
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch(PDOException $e) {
            die('数据库连接失败: ' . $e->getMessage());
        }
    }

    // 可以添加其他数据库操作方法,比如query、prepare等
}

同时,必须确保model.php在使用Db类之前,已经通过require/require_once引入了pdo_object.php:

// 在model.php的最顶部(第8行之前)添加
require_once __DIR__ . '/pdo_object.php'; // 这里的路径要根据实际文件位置调整,__DIR__表示当前文件所在目录

// 之后再实例化Db类
$db = new Db();

2. 检查命名空间问题

如果你的项目使用了命名空间(比如pdo_object.php里有namespace YourApp\Database;),那么在model.php中需要通过命名空间引用Db类:

// 方式一:使用use语句
use YourApp\Database\Db;
$db = new Db();

// 方式二:使用全限定类名
$db = new YourApp\Database\Db();

3. 验证文件路径是否正确

如果引入pdo_object.php时用了相对路径,很可能因为当前工作目录的问题导致文件没被加载。推荐使用绝对路径引入,比如:

// 假设pdo_object.php和model.php在同一个目录下
require_once __DIR__ . '/pdo_object.php';

// 如果pdo_object.php在上级目录的config文件夹里
require_once __DIR__ . '/../config/pdo_object.php';

4. 检查自动加载机制(如果有使用)

如果项目依赖自动加载器(比如Composer的PSR-4自动加载),需要确保:

  • Db类的文件名和类名一致(比如Db.php而不是pdo_object.php)
  • 类的命名空间和文件目录结构匹配
  • 自动加载器已经被正确引入(比如require_once 'vendor/autoload.php';)

最后,建议开启PHP的错误报告来获取更多细节,在model.php开头添加:

error_reporting(E_ALL);
ini_set('display_errors', 1);

这样如果有文件引入失败的警告,会直接显示出来,帮助你定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:56:47