基于旧版PHP与MySQL实现用户增删改查的完整流程解析

顾言
顾言
发布时间:2026-10-14| 4人浏览过
原创

本教程通过完整的PHP文件示例,演示如何利用MySQL数据库实现用户信息的增加、删除、修改和查询功能。内容包括数据库连接配置、数据列表循环输出、表单数据接收与校验、SQL注入风险提示以及页面跳转逻辑,旨在帮助开发者理清早期PHP后端处理的业务闭环。

系统架构与准备条件

该示例构建了一个基础的会员信息管理模块,主要包含以下核心文件:

  • dbconn.php:负责数据库连接配置与初始化。
  • userListt.php:用户列表展示页,执行查询并渲染表格。
  • addUser.php & addDo.php:新增用户入口与处理逻辑。
  • editUser.php & editDo.php:编辑用户入口与处理逻辑。
  • deleteUser.php:执行删除操作的控制器。
  • detailUser.php:查看特定用户详情的页面。

在开始之前,请确保服务器环境已安装PHP与MySQL,并创建了名为hyxx的数据库及user表。表中应包含id, username, password, sex, age, birthday, hobby, profile, add_time, last_login等字段。

第1步:建立数据库连接

所有操作均依赖于统一的数据库连接对象。创建一个名为dbconn.php的文件(通常置于inc/目录下),用于统一处理连接:

<?php
// 创建数据库连接
$con = mysql_connect("localhost", 'root', '') or die('error:' . mysql_error());
mysql_select_db('hyxx', $con) or die('error:' . mysql_error());
// 设置字符集为UTF-8以支持中文显示
mysql_query('set NAMES utf8');
?>

注意:上述代码使用了已废弃的mysql_*系列函数。在现代PHP开发中,建议强烈迁移至PDO或MySQLi扩展以获得更好的安全性与维护性。

第2步:实现用户列表查询与展示

userListt.php负责从数据库读取所有用户并按ID升序排列。逻辑如下:

  1. 引入dbconn.php获取连接资源。
  2. 执行SELECT * FROM user ORDER BY id ASC查询。
  3. 遍历结果集,将数据填充至HTML表格行中。
  4. 在“操作”列生成指向增、删、改、查功能的超链接。

关键代码片段展示了如何拼接操作链接:<a href='deleteUser.php?id='.$user['id']."'> 删</a>。这里通过GET参数传递用户ID,供后续操作使用。

第3步:新增用户记录

新增功能分为“表单页”与“处理页”两步:

3.1 填写表单

addUser.php提供了一个HTML表单,包含用户名、密码、性别单选框、年龄、出生年月下拉选择框、爱好及个人简介等输入项。表单提交方式为POST,目标指向addDo.php。

3.2 处理插入逻辑

addDo.php接收表单数据,进行预处理后执行INSERT语句:

<?php
// ... 省略变量获取代码 ...
// 组合日期时间戳
$birthday = mktime(0, 0, 0, $birthday_m, $birthday_d, $birthday_y);
$addTime = mktime(date("h"), date("m"), date("s"), date("m"), date("d"), date("Y"));

$sql = "insert into user (username,password,sex,age,birthday,hobby,profile,add_time,last_login) ".
       "values('$user_name','$password','$sex','$age','$birthday','$hobby','$profile','$addTime','$lastLoginTime')";
mysql_query($sql, $con);
// 检查影响行数判断是否成功
?>

若mysql_affected_rows()返回值大于等于1,则提示成功并跳回列表页;否则提示失败。

第4步:编辑与更新用户

编辑流程比新增复杂,因为需要先回显旧数据,再保存新数据。

4.1 加载旧数据

在editUser.php中,通过$_GET['id']获取用户ID,执行SELECT * FROM user WHERE id=...查询。将查询到的字段值填入对应的或

4.2 执行更新

用户在editUser.php提交修改后,由editDo.php处理。其核心SQL为UPDATE user SET ... WHERE id='...' 。逻辑与新增类似,区别在于字段映射需严格对应数据库结构,且仅更新非空或允许更新的字段。

第5步:删除与详情查看

5.1 删除用户

deleteUser.php是一个典型的后端控制器文件。它直接接收$_GET['id'],构造DELETE FROM user WHERE id='$id'语句并执行。成功后通过JavaScript Alert提示并重定向至列表页,无前端交互界面。

5.2 查看详情

detailUser.php类似于编辑页面的前半部分,但不包含表单提交按钮。它仅根据ID查询用户数据,并以只读表格形式展示所有字段信息,提供“返回用户列表”链接以便导航。

安全警示与排错建议

在运行此示例时,请务必注意以下风险点:

  1. SQL注入风险:当前代码直接将$_POST和$_GET中的内容拼接入SQL字符串。这是严重的安全漏洞。实际生产中必须使用参数化查询(Prepared Statements)。
  2. 密码明文存储:示例中密码未做任何哈希处理(如MD5或Bcrypt)。生产环境严禁明文存储密码。
  3. XSS跨站脚本:直接从数据库取出的数据未做转义即输出到HTML页面,可能导致恶意脚本执行。建议使用htmlspecialchars()对输出内容进行过滤。
  4. 函数弃用:mysql_*`函数已在PHP 7.0+中移除。如果在较新版本PHP环境中测试,代码将无法运行,需替换为mysqli或PDO。

以上就是PHP+MySQL实现用户增删改查的详细内容,更多关于PHP基础编程与数据库交互的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。