PHP面向对象实现增删改查需分离数据库连接、SQL执行与业务逻辑,通过DbConnection类管理PDO连接,Model基类封装通用CRUD,具体模型如User类继承并配置表名与字段,辅以QueryBuilder增强SQL灵活性,最终通过实例化调用完成操作。

在PHP中使用面向对象方式实现增删改查操作,需将数据库连接、SQL执行与业务逻辑分离,通过类封装数据访问行为。以下是基于PDO的典型结构化实现步骤:
一、定义数据库连接类
该类负责建立和管理与数据库的持久连接,避免每次操作重复初始化连接资源,同时提供统一的异常处理机制。
1、创建DbConnection类,声明private $pdo属性用于存储PDO实例。
2、在构造方法中传入主机名、数据库名、用户名和密码,组装DSN字符串。
立即学习“PHP免费学习笔记(深入)”;
3、使用try-catch包裹new PDO()调用,并设置PDO::ATTR_ERRMODE为PDO::ERRMODE_EXCEPTION。
4、将生成的PDO对象赋值给$this->pdo,并设为只读访问(不提供public setter)。
5、添加getPdo()公有方法,返回$this->pdo供其他类调用。
二、编写数据模型基类
基类抽象通用CRUD行为,定义表名、主键字段、字段映射等基础属性,为具体业务模型提供继承支持。
1、声明abstract class Model,包含protected $table、$primaryKey、$fillable等属性。
2、在构造方法中注入DbConnection实例,并调用其getPdo()获取PDO对象。
3、定义find($id)方法:拼接SELECT语句,使用prepare+execute查询单条记录,返回关联数组。
4、定义all()方法:执行无条件SELECT *,fetchAll(PDO::FETCH_ASSOC)返回全部结果。
5、定义save()方法:判断是否存在主键值决定执行INSERT或UPDATE,并自动处理字段绑定。
三、实现具体业务模型类
继承Model类后,只需指定表名、主键及可批量赋值字段,无需重写基础CRUD逻辑,保持高复用性。
1、创建User类,extends Model。
2、在类内声明protected $table = 'users';protected $primaryKey = 'id';protected $fillable = ['name', 'email', 'age']。
还木有评论哦,快来抢沙发吧~