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

PHP MySQL 記錄刪除功能實現:從列表展示到批量刪除完整流程

     編輯:PHP 相關知識

功能需求分析

實現一個完整的記錄刪除功能,包含:數據列表展示、單條刪除鏈接、刪除確認執行、結果反饋。

核心代碼實現

1. 列表頁面(list.php)



標題 操作
[刪除] [修改]
作者:

標題:

內容:

2. 刪除執行頁(del.php)

 0) {
    echo "刪除成功!
"; echo "返回列表"; } else { echo "刪除失敗:記錄不存在或已被刪除
"; echo "返回列表"; } mysql_close($link); ?>

安全性關鍵點

1. SQL 注入防護

// 危險寫法(原代碼)
$del = "DELETE FROM test WHERE id in ($tid)"; // $tid 直接來自用戶輸入

// 安全寫法:intval 強制轉換
$id = intval($_GET['id']);

// 最佳寫法:預處理語句(需升級到 MySQLi/PDO)
$stmt = $mysqli->prepare("DELETE FROM news WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();

2. CSRF 防護

// 列表頁生成 Token
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));

// 刪除鏈接攜帶 Token


// del.php 驗證
if (!hash_equals($_SESSION['csrf_token'], $_GET['token'])) {
    die("CSRF 驗證失敗");
}

3. 權限控制

// 檢查用戶是否有權刪除該記錄
function canDelete($userId, $recordId) {
    // 管理員可刪除所有
    if (isAdmin()) return true;
    // 普通用戶只能刪除自己的
    $sql = "SELECT COUNT(*) FROM news WHERE id = $recordId AND author_id = $userId";
    return mysql_result(mysql_query($sql), 0) > 0;
}

批量刪除擴展

';
while($row = mysql_fetch_array($res)) {
    echo "";
    echo "";
    echo "{$row['title']}";
    echo "";
}
echo '';
echo '';
?>


現代化重構建議

  • 使用 PDO + 預處理語句
  • 實現軟刪除(deleted_at 時間戳)而非物理刪除
  • 添加操作日誌記錄(誰在什麼時候刪除了什麼)
  • 前端使用 AJAX + SweetAlert2 提升體驗
  • 實現回收站功能,支持恢復
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved