Files
SunShineMusic/db_connect.php
2025-09-24 14:15:03 +00:00

56 lines
1.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// 数据库连接配置
$host = 'localhost'; // 数据库主机
$dbname = 'a1sax1m9i'; // 数据库名
$username = 'a1sax1m9i'; // 数据库用户名
$password = 'a1sax1m9i'; // 数据库密码
// 初始化PDO
$pdo = null;
try {
// 创建数据库连接
$pdo = new PDO(
"mysql:host=$host;dbname=$dbname;charset=utf8mb4",
$username,
$password,
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false
]
);
} catch(PDOException $e) {
// 记录连接错误
$logMsg = date('[Y-m-d H:i:s] ') . "数据库连接错误: " . $e->getMessage() . "\n";
file_put_contents('db_error.log', $logMsg, FILE_APPEND);
$pdo = false;
}
// 如果数据库不存在,尝试创建(仅用于开发环境)
if ($pdo && !isset($e)) {
try {
// 检查recommendations表是否存在如果不存在则创建
$tableCheck = $pdo->query("SHOW TABLES LIKE 'recommendations'");
if ($tableCheck->rowCount() === 0) {
$createTableSql = "
CREATE TABLE recommendations (
id INT AUTO_INCREMENT PRIMARY KEY,
song_name VARCHAR(255) NOT NULL,
artist_name VARCHAR(255) NOT NULL,
reason TEXT,
file_path VARCHAR(512) NOT NULL,
status TINYINT NOT NULL DEFAULT 0 COMMENT '0:待审核,1:已同意,2:已驳回',
created_at DATETIME NOT NULL,
reviewed_at DATETIME NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4";
$pdo->exec($createTableSql);
}
} catch(PDOException $e) {
$logMsg = date('[Y-m-d H:i:s] ') . "表创建错误: " . $e->getMessage() . "\n";
file_put_contents('db_error.log', $logMsg, FILE_APPEND);
}
}
?>