What are the best practices for storing and retrieving language preferences from a database in PHP?

When storing and retrieving language preferences from a database in PHP, it is important to properly sanitize and validate user input to prevent SQL injection attacks. It is also recommended to use prepared statements to securely interact with the database. Additionally, storing language preferences as a separate field in the user table can help streamline the retrieval process.

// Example of storing language preference in a database using prepared statements

// Assuming $db is a PDO object connected to the database
$user_id = 123;
$language = 'en';

$stmt = $db->prepare("UPDATE users SET language = :language WHERE id = :user_id");
$stmt->bindParam(':language', $language);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();

// Example of retrieving language preference from a database using prepared statements

// Assuming $db is a PDO object connected to the database
$user_id = 123;

$stmt = $db->prepare("SELECT language FROM users WHERE id = :user_id");
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
$language = $stmt->fetchColumn();

echo "User language preference: " . $language;