PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); return $pdo; } catch (PDOException $e) { error_log('DB Connection Error: ' . $e->getMessage()); return null; } } // --- Initial Table Setup --- function setup_database() { $pdo = db(); if ($pdo) { try { $pdo->exec("CREATE TABLE IF NOT EXISTS leads ( id INT AUTO_INCREMENT PRIMARY KEY, lead_name VARCHAR(255) NOT NULL, status VARCHAR(50) NOT NULL, category VARCHAR(50) NOT NULL, contact_email VARCHAR(255) NOT NULL, owner VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );"); // Add some dummy data if the table is empty $stmt = $pdo->query("SELECT COUNT(*) FROM leads"); if ($stmt->fetchColumn() == 0) { $pdo->exec(" INSERT INTO leads (lead_name, status, category, contact_email, owner) VALUES ('Global Corp vs. Local Biz', 'New', 'Corporate', 'ceo@globalcorp.com', 'John Doe'), ('Smith Divorce Case', 'Contacted', 'Family', 'jane.smith@email.com', 'Jane Smith'), ('State vs. Anderson', 'Qualified', 'Criminal', 'anderson@email.com', 'John Doe'), ('Tech Innovations Inc. Patent', 'New', 'Corporate', 'contact@techinnovations.com', 'Jane Smith'), ('Real Estate Dispute', 'Lost', 'Corporate', 'buyer@realestate.com', 'John Doe'); "); } } catch (PDOException $e) { error_log('DB Setup Error: ' . $e->getMessage()); } } } // Run setup setup_database(); ?>