/
kkkuceravin
/
Homework_PHP
Обзор
Документация
Войти
/
kkkuceravin
/
Homework_PHP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
config/database.php
86 строк
3 KB
kuceravink
final commit
01 дек 2025, 17:43
01 дек 2025, 17:43
c1ce758
Код
Авторство
О чём код?
<?php session_start(); // Настройки базы данных define('DB_HOST', 'localhost'); define('DB_NAME', 'notes_app'); define('DB_USER', 'root'); define('DB_PASS', ''); // Создание подключения function getDB() { static $pdo = null; if ($pdo === null) { try { $pdo = new PDO( "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=utf8mb4", DB_USER, DB_PASS, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false ] ); } catch(PDOException $e) { die("Ошибка подключения к базе данных: " . $e->getMessage()); } } return $pdo; } // Создание таблиц function createTables() { $pdo = getDB(); // Таблица пользователей $pdo->exec("CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"); // Таблица заметок $pdo->exec("CREATE TABLE IF NOT EXISTS notes ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(255) NOT NULL, content TEXT NOT NULL, is_public BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_user_id (user_id), INDEX idx_is_public (is_public), FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"); } // Инициализация базы данных function initDatabase() { try { createTables(); return true; } catch (Exception $e) { error_log("Ошибка инициализации БД: " . $e->getMessage()); return false; } } // Проверка подключения function checkDatabaseConnection() { try { $pdo = getDB(); $pdo->query("SELECT 1"); return true; } catch (PDOException $e) { return false; } } // Вызываем инициализацию при подключении файла initDatabase(); ?>