PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_PERSISTENT => true, // Use persistent connection ]; try { // Create a new database if it doesn't exist $tempPdo = new PDO(sprintf('mysql:host=%s;charset=utf8mb4', DB_HOST), DB_USER, DB_PASS, $options); $tempPdo->exec("CREATE DATABASE IF NOT EXISTS " . DB_NAME); // Now connect to the specific database $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); return $pdo; } catch (PDOException $e) { // In a real app, you'd log this error. For this demo, we'll just fail silently. // error_log('Database Connection Error: ' . $e->getMessage()); return null; } }