47 lines
2.7 KiB
PHP
47 lines
2.7 KiB
PHP
<?php
|
|
require 'config.php';
|
|
|
|
try {
|
|
// Connect to MySQL server to ensure DB exists
|
|
$pdo_server = new PDO("mysql:host=" . DB_HOST, DB_USER, DB_PASS);
|
|
$pdo_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
$pdo_server->exec("CREATE DATABASE IF NOT EXISTS `" . DB_NAME . "` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
|
|
echo "Database '" . DB_NAME . "' checked/created.\n";
|
|
|
|
// Connect to the specific database
|
|
$pdo = db();
|
|
echo "Database connected successfully.\n";
|
|
|
|
// Ensure users table exists with a minimal schema
|
|
$pdo->exec("\n CREATE TABLE IF NOT EXISTS `users` (\n `id` INT AUTO_INCREMENT PRIMARY KEY,\n `email` VARCHAR(100) NOT NULL UNIQUE,\n `password` VARCHAR(255) NOT NULL,\n `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n ");
|
|
echo "Base 'users' table checked/created.\n";
|
|
|
|
// --- Add columns if they don't exist ---
|
|
|
|
$columns = [
|
|
'name' => "ADD COLUMN `name` VARCHAR(50) NOT NULL AFTER `id`",
|
|
'surname' => "ADD COLUMN `surname` VARCHAR(50) NOT NULL AFTER `name`",
|
|
'role' => "ADD COLUMN `role` ENUM('talent', 'agency', 'admin') NOT NULL DEFAULT 'talent' AFTER `password`",
|
|
'bio' => "ADD COLUMN `bio` TEXT AFTER `role`",
|
|
'category' => "ADD COLUMN `category` VARCHAR(100) AFTER `bio`",
|
|
'profile_status' => "ADD COLUMN `profile_status` VARCHAR(50) NOT NULL DEFAULT 'new' AFTER `category`"
|
|
];
|
|
|
|
foreach ($columns as $column_name => $add_sql) {
|
|
$stmt = $pdo->query("SHOW COLUMNS FROM `users` LIKE '$column_name'");
|
|
if ($stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
echo "Column '$column_name' already exists.\n";
|
|
} else {
|
|
$pdo->exec("ALTER TABLE `users` $add_sql;");
|
|
echo "Column '$column_name' added successfully.\n";
|
|
}
|
|
}
|
|
|
|
// Create 'influencer_requests' table if not exists
|
|
$pdo->exec("\n CREATE TABLE IF NOT EXISTS `influencer_requests` (\n `id` INT AUTO_INCREMENT PRIMARY KEY,\n `influencer_user_id` INT NOT NULL,\n `client_name` VARCHAR(255) NOT NULL,\n `client_surname` VARCHAR(255) NOT NULL,\n `client_phone` VARCHAR(50) NOT NULL,\n `message` TEXT,\n `status` VARCHAR(50) NOT NULL DEFAULT 'new',\n `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (`influencer_user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n ");
|
|
echo "Table 'influencer_requests' checked/created.\n";
|
|
|
|
} catch (PDOException $e) {
|
|
die("Error: " . $e->getMessage());
|
|
}
|