In PHP development, what are the advantages of using Prepared Statements for executing SQL queries compared to direct query execution?

Using Prepared Statements in PHP for executing SQL queries provides several advantages over direct query execution, such as preventing SQL injection attacks, improving performance by reusing query execution plans, and enhancing code readability and maintainability.

// Using Prepared Statements to execute SQL queries in PHP

// Database connection
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Prepare a SQL statement
    $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');

    // Bind parameters
    $stmt->bindParam(':id', $id, PDO::PARAM_INT);

    // Execute the prepared statement
    $stmt->execute();

    // Fetch results
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Output results
    print_r($result);

} catch (PDOException $e) {
    echo 'Error: ' . $e->getMessage();
}