What are the best practices for handling autocomplete functionality in PHP, especially in conjunction with patterns?

When implementing autocomplete functionality in PHP, it is important to use patterns to filter and validate user input to prevent potential security vulnerabilities such as SQL injection attacks. One best practice is to use prepared statements to safely query the database and retrieve autocomplete suggestions based on user input. Additionally, consider implementing client-side validation to enhance user experience and reduce server load.

// Example PHP code snippet for handling autocomplete functionality with patterns

// Validate and sanitize user input
$searchTerm = filter_var($_GET['searchTerm'], FILTER_SANITIZE_STRING);

// Connect to database
$pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');

// Prepare SQL statement with a pattern match
$stmt = $pdo->prepare("SELECT suggestion FROM autocomplete_data WHERE suggestion LIKE :searchTerm");
$stmt->bindValue(':searchTerm', '%' . $searchTerm . '%', PDO::PARAM_STR);
$stmt->execute();

// Fetch and return autocomplete suggestions
$suggestions = $stmt->fetchAll(PDO::FETCH_COLUMN);
echo json_encode($suggestions);