PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ] ); } catch (PDOException $e) { error_log('Database connection failed: ' . $e->getMessage()); die('データベース接続に失敗しました。しばらくしてから再度お試しください。'); } // セッション開始 session_start(); // エラーレポート設定 error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', __DIR__ . '/logs.txt'); // タイムゾーン設定 date_default_timezone_set('Asia/Tokyo'); // CORS設定 header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); header("Access-Control-Allow-Headers: Content-Type, Authorization"); header("Access-Control-Allow-Credentials: true"); // --- データベース接続の追加 --- try { $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // エラー時に例外をスロー PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // デフォルトのフェッチモードを連想配列に PDO::ATTR_EMULATE_PREPARES => false, // プリペアドステートメントのエミュレーションを無効に ]; $pdo = new PDO($dsn, $username, $password, $options); } catch (\PDOException $e) { // 接続に失敗した場合の処理 error_log("Database connection failed: " . $e->getMessage()); // ユーザーには一般的なエラーメッセージを表示するか、サイトを停止する die('現在、サイトはメンテナンス中です。しばらくしてから再度お試しください。'); } // --- データベース接続の追加 ここまで --- ?>