What are some best practices for handling data input from multiple forms in PHP and storing it in a relational database?

When handling data input from multiple forms in PHP and storing it in a relational database, it is important to properly sanitize and validate the input to prevent SQL injection and other security vulnerabilities. One best practice is to use prepared statements to interact with the database, as they help prevent SQL injection attacks. Additionally, it is recommended to establish a clear database schema that maps to the forms' input fields to ensure data integrity.

// Assume $db is a PDO object connected to the database

// Sanitize and validate input from Form 1
$form1_input1 = filter_var($_POST['form1_input1'], FILTER_SANITIZE_STRING);
$form1_input2 = filter_var($_POST['form1_input2'], FILTER_VALIDATE_EMAIL);

// Prepare and execute SQL statement to insert data from Form 1
$stmt = $db->prepare("INSERT INTO table_name (column1, column2) VALUES (:input1, :input2)");
$stmt->bindParam(':input1', $form1_input1);
$stmt->bindParam(':input2', $form1_input2);
$stmt->execute();

// Sanitize and validate input from Form 2
$form2_input1 = filter_var($_POST['form2_input1'], FILTER_SANITIZE_STRING);
$form2_input2 = filter_var($_POST['form2_input2'], FILTER_VALIDATE_INT);

// Prepare and execute SQL statement to insert data from Form 2
$stmt = $db->prepare("INSERT INTO table_name (column1, column2) VALUES (:input1, :input2)");
$stmt->bindParam(':input1', $form2_input1);
$stmt->bindParam(':input2', $form2_input2);
$stmt->execute();