17-vm/db/init.php
Flatlogic Bot 7174e34e88 财神
2026-02-07 13:55:25 +00:00

68 lines
2.3 KiB
PHP

<?php
// Initialize database tables
require_once __DIR__ . '/config.php';
try {
$pdo = db();
// Create users table
$pdo->exec("CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)");
// Create settings table
$pdo->exec("CREATE TABLE IF NOT EXISTS settings (
id INT AUTO_INCREMENT PRIMARY KEY,
setting_key VARCHAR(50) NOT NULL UNIQUE,
setting_value TEXT,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)");
// Create steps table
$pdo->exec("CREATE TABLE IF NOT EXISTS steps (
id INT AUTO_INCREMENT PRIMARY KEY,
day_number INT NOT NULL UNIQUE,
title VARCHAR(255),
what_to_chat TEXT,
how_to_chat TEXT,
why_to_chat TEXT,
correct_example TEXT,
wrong_example TEXT,
correct_explanation TEXT,
wrong_explanation TEXT,
image_url VARCHAR(255),
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)");
// Seed default admin if not exists
$stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE username = 'admin'");
$stmt->execute();
if ($stmt->fetchColumn() == 0) {
$password = password_hash('admin123', PASSWORD_DEFAULT);
$pdo->prepare("INSERT INTO users (username, password) VALUES ('admin', ?)")->execute([$password]);
}
// Seed default settings
$defaultSettings = [
'site_title' => '财神组聊天框架',
'site_logo' => 'assets/pasted-20260207-134833-7329dc42.jpg',
'tg_link' => 'https://t.me/zhangshihao818',
'footer_copy' => '© 2026 财神组聊天框架构造. 内部资料,翻版必究。',
'watermark_text' => '财神组专用字体'
];
foreach ($defaultSettings as $key => $val) {
$pdo->prepare("INSERT IGNORE INTO settings (setting_key, setting_value) VALUES (?, ?)")->execute([$key, $val]);
}
// Seed default steps 1-7
for ($i = 1; $i <= 7; $i++) {
$pdo->prepare("INSERT IGNORE INTO steps (day_number, title) VALUES (?, ?)")->execute([$i, "{$i}天:初步沟通"]);
}
} catch (PDOException $e) {
error_log("DB Init Error: " . $e->getMessage());
}