What is the common approach for sorting SQL queries in PHP based on user input?

When allowing users to sort SQL queries in PHP based on user input, it is common to use prepared statements to prevent SQL injection attacks. Additionally, using conditional logic to dynamically construct the SQL query based on user input is essential. Finally, incorporating proper error handling to catch any potential issues that may arise during the sorting process is crucial.

// Assuming $sortBy and $sortOrder are user inputs
$sortBy = isset($_GET['sortBy']) ? $_GET['sortBy'] : 'default_column';
$sortOrder = isset($_GET['sortOrder']) ? $_GET['sortOrder'] : 'ASC';

// Validate user input to prevent SQL injection
$allowedColumns = ['column1', 'column2', 'column3'];
if (!in_array($sortBy, $allowedColumns)) {
    $sortBy = 'default_column';
}

// Construct the SQL query based on user input
$sql = "SELECT * FROM table_name ORDER BY $sortBy $sortOrder";

// Execute the query and handle any errors
$stmt = $pdo->prepare($sql);
if ($stmt->execute()) {
    // Process the results
} else {
    echo "Error executing query: " . $stmt->errorInfo();
}