exec("DROP TABLE IF EXISTS `students`"); } $pdo->exec(" CREATE TABLE IF NOT EXISTS `students` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(100) NOT NULL, `email` VARCHAR(100) NOT NULL, `phone` VARCHAR(20) DEFAULT NULL, `birthday` DATE DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci "); // Đảm bảo có cột phone và birthday nếu bảng đã được tạo từ phiên bản cũ $cols = $pdo->query("SHOW COLUMNS FROM `students`")->fetchAll(PDO::FETCH_COLUMN); if (!in_array('phone', $cols, true)) { $pdo->exec("ALTER TABLE `students` ADD COLUMN `phone` VARCHAR(20) DEFAULT NULL AFTER `email`"); } if (!in_array('birthday', $cols, true)) { $pdo->exec("ALTER TABLE `students` ADD COLUMN `birthday` DATE DEFAULT NULL AFTER `phone`"); } $count = (int)$pdo->query("SELECT COUNT(*) FROM `students`")->fetchColumn(); if ($count === 0) { $stmt = $pdo->prepare("INSERT INTO `students` (`name`, `email`, `phone`, `birthday`) VALUES (:name, :email, :phone, :birthday)"); foreach (getLab04SampleStudents() as $row) { $stmt->execute([ ':name' => $row[0], ':email' => $row[1], ':phone' => $row[2], ':birthday' => $row[3], ]); } } } /** * Hiển thị thông báo lỗi kết nối MySQL thân thiện kèm hướng dẫn cấu hình */ function renderLab04DbError(Throwable $e, string $rootUrl = '../../index.php'): void { ?>
Chi tiết lỗi: = htmlspecialchars($e->getMessage()) ?>
Hướng dẫn khắc phục nhanh:
= htmlspecialchars((string)DB_PORT) ?>.= htmlspecialchars((string)DB_HOST) ?>, User = htmlspecialchars((string)DB_USER) ?>, Database = htmlspecialchars((string)DB_NAME) ?>.root khác, hãy bấm vào nút bên dưới để cấu hình lại thông tin kết nối dùng chung.