讲师中心 微信公众号
AI工具推荐 视频效率加速

PHP增删改查怎么封装成函数_php函数封装步骤【复用】

星涛大大_3041

星涛大大_3041

发布时间:2025-12-25 20:43:02

|

472人浏览过

|

来源于php中文网

原创

可将数据库增删改查操作封装为独立函数以提升复用性:一、定义带异常处理和字符集设置的PDO连接函数;二、封装支持防注入的插入函数并返回主键;三、封装查询单条记录函数,无结果时返回null;四、封装支持条件、字段筛选及排序的多条查询函数;五、封装区分更新与条件参数的更新函数,并校验影响行数;六、封装强制带WHERE条件的删除函数,空条件抛异常。

php增删改查怎么封装成函数_php函数封装步骤【复用】

如果您需要在多个PHP项目中重复使用数据库的增删改查操作,则可以将这些操作封装为独立函数以提升代码复用性。以下是实现该目标的具体步骤:

一、定义数据库连接函数

为避免每次操作都重复编写连接逻辑,需先封装一个统一获取数据库连接的函数。该函数返回PDO实例,确保后续所有操作基于同一连接机制,并支持异常处理与字符集设置。

1、创建config.php文件,定义数据库连接参数(主机名、用户名、密码、数据库名)。

2、在函数内部使用try-catch捕获PDO构造异常,防止连接失败导致脚本中断。

立即学习“PHP免费学习笔记(深入)”;

3、设置PDO::ATTR_ERRMODE为PDO::ERRMODE_EXCEPTION,使所有错误抛出异常。

4、执行$pdo->exec("SET NAMES utf8mb4")确保中文字符正确传输。

5、返回配置完成的PDO对象供其他函数调用。

二、封装插入操作函数

插入函数接收表名和字段值数组作为参数,动态生成INSERT语句,防止SQL注入并适配不同数据结构。

1、从传入的关联数组中提取键名作为字段名,值作为绑定参数。

2、使用array_keys()和implode()拼接字段列表,用:前缀格式化占位符名。

3、构建预处理SQL语句:INSERT INTO table (col1,col2) VALUES (:col1,:col2)。

4、调用prepare()和execute()执行语句,传入原始数组作为绑定参数。

5、返回lastInsertId()结果,便于获取新插入记录的主键值。

三、封装查询单条记录函数

该函数用于根据条件精确获取一条数据,适用于详情页或唯一性校验场景,返回关联数组或null。

1、接收表名、条件字段名、条件值三个必要参数,支持可选的字段选择列表(默认为*)。

2、构造WHERE子句,使用=进行等值匹配,并对条件值使用命名占位符。

3、调用prepare()准备语句,execute()执行时传入含条件值的数组。

4、调用fetch(PDO::FETCH_ASSOC)获取单行结果。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

5、若无匹配记录,fetch()返回false,函数应直接返回null而非空数组。

四、封装查询多条记录函数

该函数用于获取满足条件的数据集合,支持字段筛选与简单排序,返回二维关联数组。

1、接收表名、可选的WHERE条件数组(键为字段名,值为匹配值)、可选的字段列表、可选的ORDER BY字段及方向。

2、遍历条件数组,构建AND连接的WHERE子句及对应命名占位符。

3、若传入排序参数,拼接ORDER BY子句,且对字段名与方向做白名单校验防止注入。

4、执行prepare()与execute(),使用fetchAll(PDO::FETCH_ASSOC)获取全部结果。

5、当无WHERE条件时,SQL语句应不包含WHERE关键字,避免语法错误。

五、封装更新操作函数

更新函数依据主键或其他唯一条件修改指定字段,需严格区分条件参数与更新参数,防止误更新全表。

1、接收表名、待更新字段的关联数组(如['name'=>'张三','age'=>25])、条件字段名、条件值。

2、使用array_keys()生成SET部分字段列表,每个字段后接=?形式的占位符。

3、合并更新值与条件值为一个有序参数数组,确保execute()绑定顺序一致。

4、构造UPDATE语句,WHERE子句使用=匹配条件值,并采用命名占位符方式。

5、执行后检查rowCount()返回值,若为0需提示未找到匹配记录,避免静默失败。

六、封装删除操作函数

删除函数仅依据明确条件执行物理删除,必须强制要求提供WHERE条件,禁止无条件DELETE操作。

1、接收表名、条件字段名、条件值三个参数,不支持空条件调用。

2、在函数起始处校验条件字段名是否为空字符串或null,为空则立即抛出InvalidArgumentException异常。

3、构造DELETE FROM table WHERE field = ?语句,使用问号占位符绑定条件值。

4、调用prepare()与execute()执行删除。

5、返回rowCount()结果,用于判断实际影响行数,开发者须据此确认删除是否生效。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

4043

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

851

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

1049

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

5921

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

2823

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

5900

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

7861

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

1070

2024.04.29

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

100

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn