68 lines
2.2 KiB
PHP
68 lines
2.2 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/../db/config.php';
|
|
|
|
function h(?string $value): string {
|
|
return htmlspecialchars($value ?? '', ENT_QUOTES, 'UTF-8');
|
|
}
|
|
|
|
function ensure_tables(): void {
|
|
$pdo = db();
|
|
|
|
$pdo->exec(
|
|
"CREATE TABLE IF NOT EXISTS builds (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
title VARCHAR(160) NOT NULL,
|
|
game VARCHAR(80) NOT NULL,
|
|
class_name VARCHAR(80) NOT NULL,
|
|
patch VARCHAR(40) DEFAULT NULL,
|
|
summary VARCHAR(240) DEFAULT NULL,
|
|
skills TEXT,
|
|
gear TEXT,
|
|
author VARCHAR(80) NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
|
|
);
|
|
|
|
$pdo->exec(
|
|
"CREATE TABLE IF NOT EXISTS build_comments (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
build_id INT NOT NULL,
|
|
author VARCHAR(80) NOT NULL,
|
|
body TEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX (build_id),
|
|
CONSTRAINT fk_build_comment FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
|
|
);
|
|
|
|
$pdo->exec(
|
|
"CREATE TABLE IF NOT EXISTS forum_threads (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
title VARCHAR(160) NOT NULL,
|
|
game VARCHAR(80) NOT NULL,
|
|
tag VARCHAR(40) DEFAULT NULL,
|
|
body TEXT NOT NULL,
|
|
author VARCHAR(80) NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
|
|
);
|
|
|
|
$pdo->exec(
|
|
"CREATE TABLE IF NOT EXISTS forum_posts (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
thread_id INT NOT NULL,
|
|
author VARCHAR(80) NOT NULL,
|
|
body TEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX (thread_id),
|
|
CONSTRAINT fk_thread_post FOREIGN KEY (thread_id) REFERENCES forum_threads(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
|
|
);
|
|
}
|
|
|
|
function format_date(string $value): string {
|
|
return date('M j, Y H:i', strtotime($value));
|
|
}
|