通過瀏覽器即可對 MySQL 執行:創建/刪除數據庫、在指定庫中創建/刪除表(支持自定義字段名、類型)。包含兩個文件:mkdb.html (前端表單) 與 mkdb.php (後端處理)。
webroot/
├── mkdb.html # 用戶輸入界面
└── mkdb.php # 處理邏輯 + 結果展示
mkdb.html 關鍵點<form method="post" action="mkdb.php"> 分別對應:創建庫、刪除庫、創建表、刪除表;name="SWCODE" 值區分操作類型:創建數據庫、刪除數據庫、創建表、刪除表。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;
}
?>
$_POST 變量構建 SQL,攻擊者可執行任意命令;mysql_* 函數自 PHP 5.5 棄用,7.0 移除。https://your-host/mkdb.html;本案例展示了 PHP 操作 MySQL DDL 的基本模式,但絕不可直接用於生產。理解其原理後,請採用成熟工具或按現代安全規範重構。