<?php

// Assume $pdo is a PDO connection with ERRMODE_EXCEPTION enabled.

try {

    // Prepare the INSERT
    $stmt = $pdo->prepare("
        INSERT INTO eng_events.`260227_ais_workshop_registration`
            (full_name, email, affiliation, phone)
        VALUES
            (:full_name, :email, :affiliation, :phone)
    ");

    // Bind parameters
    $stmt->execute([
        ':full_name'   => $_POST['full_name'],
        ':email'       => $_POST['email'],
        ':affiliation' => $_POST['affiliation'],
        ':phone'       => $_POST['phone']
    ]);

    // If we reach this point, the INSERT succeeded
    echo "Thank you for your submission.";

} catch (PDOException $e) {

    // SQLSTATE 23000 = integrity constraint violation
    if ($e->getCode() === '23000') {

        // You can inspect $e->getMessage() to map specific constraints
        // to specific user-friendly messages if you want.
        // Example:
        if (strpos($e->getMessage(), 'chk_affiliation') !== false) {
            echo "Your submission was not recorded. Please choose a valid affiliation.";
            exit;
        }

        if (strpos($e->getMessage(), 'chk_email') !== false) {
            echo "Your submission was not recorded. Please enter a valid email address.";
            exit;
        }

        // Fallback for any other constraint violation
        echo "Your submission was not recorded. Please review your entries and try again.";
        exit;
    }

    // Any other database error
    echo "A system error occurred. Please try again later.";
    exit;
}

?>
