What are the advantages of using prepared statements over manually escaping user input in PHP?

Using prepared statements in PHP is advantageous over manually escaping user input because prepared statements separate SQL code from user input, preventing SQL injection attacks. Prepared statements also improve performance by allowing the database to compile the SQL query once and execute it multiple times with different parameters. Additionally, prepared statements provide a cleaner and more readable code structure compared to manually escaping user input.

// Using prepared statements to insert user input into a database

// Establish a database connection
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');

// Prepare a SQL statement with a placeholder for user input
$stmt = $pdo->prepare("INSERT INTO users (username, email) VALUES (:username, :email)");

// Bind the user input to the placeholders in the prepared statement
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);

// Set the values of the variables $username and $email from user input
$username = $_POST['username'];
$email = $_POST['email'];

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