How can PHP be optimized to handle form submissions and database queries more efficiently in a multi-step form process?
To optimize PHP for handling form submissions and database queries more efficiently in a multi-step form process, you can use session variables to store form data across different steps and batch database queries to reduce the number of database calls.
<?php
session_start();
// Step 1: Process form data and store in session
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['step1_submit'])) {
$_SESSION['step1_data'] = $_POST;
}
// Step 2: Process form data and store in session
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['step2_submit'])) {
$_SESSION['step2_data'] = $_POST;
}
// Step 3: Process form data and store in session
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['step3_submit'])) {
$_SESSION['step3_data'] = $_POST;
// Batch insert data into database
$conn = new mysqli("localhost", "username", "password", "database");
$data = array_merge($_SESSION['step1_data'], $_SESSION['step2_data'], $_SESSION['step3_data']);
$sql = "INSERT INTO table_name (col1, col2, col3) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $data['field1'], $data['field2'], $data['field3']);
$stmt->execute();
// Clear session data
unset($_SESSION['step1_data']);
unset($_SESSION['step2_data']);
unset($_SESSION['step3_data']);
}
?>