基于旧版PHP与MySQL实现用户增删改查的完整流程解析
本教程通过完整的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升序排列。逻辑如下:
- 引入
dbconn.php获取连接资源。 - 执行
SELECT * FROM user ORDER BY id ASC查询。 - 遍历结果集,将数据填充至HTML表格行中。
- 在“操作”列生成指向增、删、改、查功能的超链接。
关键代码片段展示了如何拼接操作链接:<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查询用户数据,并以只读表格形式展示所有字段信息,提供“返回用户列表”链接以便导航。
安全警示与排错建议
在运行此示例时,请务必注意以下风险点:
- SQL注入风险:当前代码直接将
$_POST和$_GET中的内容拼接入SQL字符串。这是严重的安全漏洞。实际生产中必须使用参数化查询(Prepared Statements)。 - 密码明文存储:示例中密码未做任何哈希处理(如MD5或Bcrypt)。生产环境严禁明文存储密码。
- XSS跨站脚本:直接从数据库取出的数据未做转义即输出到HTML页面,可能导致恶意脚本执行。建议使用
htmlspecialchars()对输出内容进行过滤。 - 函数弃用:
mysql_*`函数已在PHP 7.0+中移除。如果在较新版本PHP环境中测试,代码将无法运行,需替换为mysqli或PDO。
以上就是PHP+MySQL实现用户增删改查的详细内容,更多关于PHP基础编程与数据库交互的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









