Проблема с отображением исполнителей из базы данных

    Столкнулся с проблемой: исполнители не отображаются из базы данных, хотя подключение настроено правильно. Однако данные не только не выводятся, но и в консоли появляется ошибка подключения. Пробовал искать решение через ChatGPT, но это не помогло. Надеюсь на помощь сообщества.

    Для диагностики привожу код, используемый для работы с БД:

    Файл подключения к базе данных (db.php)

    <?php
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    define('DB_NAME', 'task_app');
    
    $mysql = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    
    if ($mysql->connect_errno) {
        die(json_encode(['error' => 'Ошибка подключения к БД: ' . $mysql->connect_error]));
    }
    
    $mysql->set_charset('utf8');
    ?>

    Основной файл API (index.php)

    <?php
    error_reporting(0);
    ini_set('display_errors', 0);
    
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
    header("Access-Control-Max-Age: 3600");
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
    
    require_once __DIR__ . '/db.php';
    
    if (!isset($mysql)) {
        die(json_encode(['error' => 'Ошибка подключения к базе данных']));
    }
    
    $method = $_SERVER['REQUEST_METHOD'];
    $action = $_GET['action'] ?? '';
    
    // Логика обработки запросов (GET, POST, PUT, DELETE) с различными действиями
    
    if ($method === 'GET' && $action === 'get') {
        // Получение всех задач
        $result = $mysql->query("SELECT * FROM tasks ORDER BY created_at DESC");
        if (!$result) {
            die(json_encode(['error' => 'Ошибка запроса: ' . $mysql->error]));
        }
        $tasks = [];
        while ($row = $result->fetch_assoc()) {
            $tasks[] = $row;
        }
        echo json_encode($tasks);
        exit;
    } elseif ($method === 'POST' && $action === 'create') {
        // Создание новой задачи
        $data = json_decode(file_get_contents('php://input'), true);
        $title = $data['title'] ?? '';
        $description = $data['description'] ?? '';
        $executor = $data['executor'] ?? '';
        $photosCount = $data['photosCount'] ?? 0;
        $status = $data['status'] ?? 'pending';
        if (empty($title)) {
            echo json_encode(['error' => 'Название обязательно']);
            exit;
        }
        $stmt = $mysql->prepare("INSERT INTO tasks (title, description, executor, photos_count, status) VALUES (?, ?, ?, ?, ?)");
        if (!$stmt) {
            echo json_encode(['error' => 'Ошибка подготовки запроса: ' . $mysql->error]);
            exit;
        }
        $stmt->execute([$title, $description, $executor, $photosCount, $status]);
        echo json_encode(['success' => true, 'id' => $mysql->insert_id]);
        exit;
    } elseif ($method === 'PUT' && $action === 'update') {
        // Обновление статуса задачи
        $data = json_decode(file_get_contents('php://input'), true);
        $id = $data['id'] ?? null;
        $status = $data['status'] ?? '';
        if (!$id || !$status) {
            echo json_encode(['error' => 'Некорректные данные']);
            exit;
        }
        $stmt = $mysql->prepare("UPDATE tasks SET status = ? WHERE id = ?");
        if (!$stmt) {
            echo json_encode(['error' => 'Ошибка подготовки запроса: ' . $mysql->error]);
            exit;
        }
        $stmt->execute([$status, $id]);
        echo json_encode(['success' => true]);
        exit;
    } elseif ($method === 'DELETE' && $action === 'delete') {
        // Удаление задачи
        parse_str(file_get_contents('php://input'), $data);
        $id = $data['id'] ?? null;
        if (!$id) {
            echo json_encode(['error' => 'ID задачи не указан']);
            exit;
        }
        $stmt = $mysql->prepare("DELETE FROM tasks WHERE id = ?");
        if (!$stmt) {
            echo json_encode(['error' => 'Ошибка подготовки запроса: ' . $mysql->error]);
            exit;
        }
        $stmt->execute([$id]);
        echo json_encode(['success' => true]);
        exit;
    } elseif ($method === 'GET' && $action === 'get_users') {
        // Получение списка пользователей
        $result = $mysql->query("SELECT id, login, name FROM users");
        if (!$result) {
            die(json_encode(['error' => 'Ошибка запроса: ' . $mysql->error]));
        }
        $users = [];
        while ($row = $result->fetch_assoc()) {
            $users[] = $row;
        }
        echo json_encode($users);
        exit;
    }
    
    echo json_encode(['error' => 'Неизвестное действие']);
    ?>

    Возможные причины проблемы и рекомендации

    • Проверьте, что база данных task_app существует и в ней есть таблица users с колонками id, login, name.
    • Убедитесь, что используется правильный пользователь БД (root с пустым паролем для localhost).
    • Включите отображение ошибок временно (уберите error_reporting(0)) для детального вывода.
    • Проверьте, что расширение mysqli активно в PHP.