What are best practices for structuring PHP code to efficiently handle data validation in tables?

When handling data validation in tables in PHP, it is best to separate the validation logic from the database interaction code. This can be achieved by creating separate functions or classes for data validation and database operations. By structuring the code in this way, it becomes easier to maintain and update the validation rules without affecting the database operations.

<?php

// Separate function for data validation
function validateData($data) {
    // Add your validation rules here
    if (empty($data['name'])) {
        return false;
    }
    
    return true;
}

// Database interaction code
$connection = new mysqli('localhost', 'username', 'password', 'database');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'];
    
    if (validateData($_POST)) {
        $query = "INSERT INTO table_name (name) VALUES ('$name')";
        
        if ($connection->query($query) === TRUE) {
            echo "Data inserted successfully";
        } else {
            echo "Error: " . $connection->error;
        }
    } else {
        echo "Invalid data provided";
    }
}

$connection->close();

?>