55 行
2.3 KiB
PHP
55 行
2.3 KiB
PHP
<?php
|
|
$pdo = new PDO("mysql:host=127.0.0.1;port=3306;dbname=yjyf;charset=utf8mb4", "yjyf", "4bRz2NYz6pDhsCk4");
|
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
$sqlFile = 'D:/Projects/phpstudy_pro/WWW/yjyf/db/schema_phase11_menu_reorganize_qibing.sql';
|
|
if (!file_exists($sqlFile)) {
|
|
die("Error: SQL file not found: $sqlFile\n");
|
|
}
|
|
|
|
$sqlContent = file_get_contents($sqlFile);
|
|
$statements = array_filter(array_map('trim', explode(';', $sqlContent)));
|
|
|
|
echo "========================================================\n";
|
|
echo " 优匠优服 · 执行 Phase 11 菜单与大盘数据库配置脚本\n";
|
|
echo " 文件路径: $sqlFile\n";
|
|
echo "========================================================\n\n";
|
|
|
|
$step = 1;
|
|
foreach ($statements as $st) {
|
|
if (empty($st) || strpos($st, '--') === 0) continue;
|
|
try {
|
|
$affected = $pdo->exec($st);
|
|
$preview = str_replace(["\r", "\n", " "], [" ", " ", " "], substr($st, 0, 75));
|
|
echo "[步骤 {$step}] 执行成功 (受影响行数: $affected) -> {$preview}...\n";
|
|
$step++;
|
|
} catch (Exception $e) {
|
|
echo "[步骤 {$step}] 执行失败: " . $e->getMessage() . "\n";
|
|
die("终止执行。\n");
|
|
}
|
|
}
|
|
|
|
echo "\n========================================================\n";
|
|
echo " SQL 执行完毕!当前数据库菜单层级验证:\n";
|
|
echo "========================================================\n";
|
|
|
|
$rules = $pdo->query("SELECT id, pid, name, title, icon, weigh, ismenu FROM fa_auth_rule WHERE ismenu = 1 ORDER BY weigh DESC, id ASC")->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
function displayTree($rules, $pid = 0, $depth = 0) {
|
|
foreach ($rules as $r) {
|
|
if ($r['pid'] == $pid) {
|
|
echo str_repeat(" ", $depth) . "├── [ID:{$r['id']}] {$r['title']} (name: {$r['name']}, icon: {$r['icon']}, weigh: {$r['weigh']})\n";
|
|
displayTree($rules, $r['id'], $depth + 1);
|
|
}
|
|
}
|
|
}
|
|
displayTree($rules);
|
|
|
|
echo "\n========================================================\n";
|
|
echo " 系统配置项验证 (fa_config.fixedpage):\n";
|
|
echo "========================================================\n";
|
|
$fixedpage = $pdo->query("SELECT name, title, value FROM fa_config WHERE name = 'fixedpage'")->fetch(PDO::FETCH_ASSOC);
|
|
print_r($fixedpage);
|
|
|
|
echo "\n全部 SQL 执行并校验成功!\n";
|