首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP + MySQL 实战:从数据库连接到完整用户管理系统 (CRUD)

     編輯:PHP 綜合知識

项目结构

dbconn.php       // 数据库连接
userList.php     // 用户列表 (Read)
addUser.php      // 添加用户表单 (Create)
addDo.php        // 添加处理
editUser.php     // 编辑用户表单 (Update)
editDo.php       // 编辑处理
detailUser.php   // 用户详情 (Read)
deleteUser.php   // 删除用户 (Delete)

核心模块实现

1. 数据库连接 — dbconn.php

connect_errno) {
    die('Connect Error: ' . $mysqli->connect_error);
}
$mysqli->set_charset('utf8mb4'); // 支持 Emoji
// 供其他文件引用:$GLOBALS['db'] = $mysqli; 或封装函数
?>

安全提示:生产环境配置文件分离、最小权限账号、启用 SSL 连接。

2. 用户列表 — userList.php

query($sql);
$users = $result->fetch_all(MYSQLI_ASSOC);
?>

会员列表
ID用户名密码性别年龄 出生日期爱好注册时间最后登录操作
增 | 删 | 改 | 查

3. 编辑表单 — editUser.php (关键:预填数据 + 安全转义)

prepare("SELECT * FROM `user` WHERE `id` = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
?>
用户名
密码
性别
年龄
出生日期 年 月 日
爱好
个人简介

4. 编辑处理 — editDo.php (预处理语句防注入)

prepare("UPDATE `user` SET `username`=?, `password`=?, `sex`=?, `age`=?, `birthday`=?, `hobby`=?, `profile`=? WHERE `id`=?");
$stmt->bind_param('sssiissi', $name, $pwd, $sex, $age, $birthday, $hobby, $profile, $id);
$stmt->execute();
$rows = $stmt->affected_rows;
$stmt->close();

echo "";

5. 其余模块要点

  • addUser.php/addDo.php:表单结构同编辑,SQL 用 INSERT,预处理绑定参数
  • detailUser.php:预处理查询单条,只读展示,无表单
  • deleteUser.php:DELETE FROM user WHERE id=?,预处理 + affected_rows 判断

关键最佳实践总结

维度错误做法最佳实践
扩展mysql_* 函数MySQLi / PDO
查询字符串拼接 SQL预处理语句 prepare/bind_param/execute
编码set names utf8set_charset('utf8mb4')
输出直接输出变量htmlspecialchars() 防 XSS
输入直接使用 $_GET/$_POST类型转换 (int) + 业务校验
跳转JS location.hrefPHP header('Location: ...') + exit

进阶建议

  1. 引入单一入口 index.php + 路由分发,告别散文件
  2. 封装数据库操作类 (ActiveRecord/Repository 模式)
  3. 使用 Composer 管理依赖,引入成熟框架 (Laravel/Symfony/Slim)
  4. 实现 CSRF Token、密码哈希 (password_hash)、分页查询
  5. 部署时关闭 display_errors,开启错误日志
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved