首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

PHP + MySQL 遠程數據庫管理工具:Web 界面創建/刪除庫表完整代碼

     編輯:MySQL 資料庫相關知識

功能概覽

通過瀏覽器即可對 MySQL 執行:創建/刪除數據庫、在指定庫中創建/刪除表(支持自定義字段名、類型)。包含兩個文件:mkdb.html (前端表單) 與 mkdb.php (後端處理)。

文件結構

webroot/
├── mkdb.html    # 用戶輸入界面
└── mkdb.php     # 處理邏輯 + 結果展示

核心代碼解析

1. 前端表單 mkdb.html 關鍵點

  • 四個獨立 <form method="post" action="mkdb.php"> 分別對應:創建庫、刪除庫、創建表、刪除表;
  • 創建表表單提供 10 行字段定義,每行含:字段名輸入框 + 類型下拉框 (INT、TINYINT、FLOAT、DOUBLE、DATE、VARCHAR、CHAR、NONE);
  • 提交按鈕 name="SWCODE" 值區分操作類型:創建數據庫、刪除數據庫、創建表、刪除表。

2. 後端處理 mkdb.php 核心邏輯

<?php
// 連接數據庫 (建議改用 mysqli/PDO 並參數化查詢)
$conn = mysql_connect('localhost', 'root', 'password') or die('連接失敗');

// 輔助函數:顯示庫/表/列
function showdb($res) { ... }
function showcol($res) { ... }
function showtab($res, $db) { ... }

// 業務函數
function creatdb($name) { mysql_create_db($name); }
function dropdb($name)  { mysql_drop_db($name); }

// 主邏輯
switch ($_POST['SWCODE']) {
  case '創建數據庫':
    creatdb($_POST['DATABASENAME']);
    showdb(mysql_list_dbs());
    break;
  case '刪除數據庫':
    dropdb($_POST['DATABASENAME']);
    showdb(mysql_list_dbs());
    break;
  case '創建表':
    if (mysql_select_db($_POST['DATABASENAME'])) {
      // 構建 CREATE TABLE SQL
      $sql = "CREATE TABLE `{$_POST['TABLENAME']}` (";
      for ($i=1; $i<=10; $i++) {
        if ($_POST['TYPE'][$i] !== 'NONE' && $_POST['FIELDNAME'][$i]) {
          $sql .= "`{$_POST['FIELDNAME'][$i]}` {$_POST['TYPE'][$i]},";
        }
      }
      $sql = rtrim($sql, ',').')';
      mysql_db_query($_POST['DATABASENAME'], $sql);
      // 顯示表結構
    }
    break;
  case '刪除表':
    // DROP TABLE 邏輯
    break;
}
?>

安全性警示 ⚠️

原始代碼存在嚴重安全風險,生產環境嚴禁直接使用!
  • SQL 注入:直接拼接 $_POST 變量構建 SQL,攻擊者可執行任意命令;
  • 硬編碼憑證:數據庫 root 密碼明文寫在代碼中;
  • 無權限控制:任意訪問者可執行 DDL 操作;
  • 使用已棄用 API:mysql_* 函數自 PHP 5.5 棄用,7.0 移除。

現代化重構建議

  1. 改用 PDO + 預處理語句 防注入;
  2. 引入 認證授權 (如 HTTP Basic Auth、Session 登錄、IP 白名單);
  3. 將數據庫憑證存入 環境變量/配置文件 (Git 忽略);
  4. 操作審計日志:記錄「誰、何時、執行何操作」;
  5. 前端改用 AJAX + JSON 交互,體驗更流暢;
  6. 考慮成熟工具:phpMyAdmin、Adminer、MySQL Workbench 替代自建輪子。

部署步驟 (僅供學習測試)

  1. 將兩文件放入 Apache 虛擬主機目錄;
  2. 瀏覽器訪問 https://your-host/mkdb.html;
  3. 輸入庫/表/字段信息提交測試。

總結

本案例展示了 PHP 操作 MySQL DDL 的基本模式,但絕不可直接用於生產。理解其原理後,請採用成熟工具或按現代安全規範重構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved