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

PHP + MySQL 实现简易 CRUD 增删改查完整示例

     編輯:PHP 綜合知識

数据库准备

CREATE DATABASE `test` CHARSET utf8mb4;
USE `test`;
CREATE TABLE `user` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(50) NOT NULL UNIQUE,
    `password` VARCHAR(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

统一数据库连接 — db.php

connect_errno) {
    die('DB Connect Failed: ' . $mysqli->connect_error);
}
$mysqli->set_charset('utf8mb4');

列表页 — list.php (Read)

query("SELECT * FROM `user`");
?>

用户列表
fetch_assoc()): ?>
用户名密码哈希操作
删除 | 修改

添加新用户

添加 — insert.php (表单) + insertDo.php (处理)


用户名:
密码:
prepare("INSERT INTO `user` (`username`, `password`) VALUES (?, ?)");
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
echo $stmt->affected_rows ? "添加成功 (ID: {$mysqli->insert_id})" : "添加失败: {$stmt->error}";
$stmt->close();

删除 — delete.php

prepare("DELETE FROM `user` WHERE `id` = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
echo $stmt->affected_rows ? "删除成功" : "删除失败或不存在";
$stmt->close();

修改 — update.php (表单) + updateDo.php (处理)

prepare("SELECT * FROM `user` WHERE `id` = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
?>
用户名:
新密码:
prepare("UPDATE `user` SET `username`=?, `password`=? WHERE `id`=?");
    $stmt->bind_param('ssi', $username, $password, $id);
} else {
    $stmt = $mysqli->prepare("UPDATE `user` SET `username`=? WHERE `id`=?");
    $stmt->bind_param('si', $username, $id);
}
$stmt->execute();
echo $stmt->affected_rows ? "更新成功" : "更新失败或无变化";
$stmt->close();

安全与工程化关键点

  1. 预处理语句:所有 SQL 使用 prepare/bind_param,彻底防注入
  2. 密码哈希:password_hash() + password_verify(),禁用明文/MD5
  3. 输出转义:htmlspecialchars() 防 XSS
  4. 输入校验:(int) 强制类型、required 前端校验、后端长度/格式校验
  5. 错误处理:$stmt->error 记录日志,生产环境不直接输出
  6. 字符集:utf8mb4 支持完整 Unicode

进阶重构方向

  • 封装 UserRepository 类,隔离 SQL 细节
  • 引入 PDO 替代 MySQLi,支持多数据库
  • 单一入口 index.php + 简单路由
  • CSRF Token 保护表单提交
  • 分页查询 LIMIT ?, ?
  • Composer 自动加载 + 规范目录结构
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved