How can the SET data type in a MySQL database simplify the design of a PHP application's login system?
Using the SET data type in a MySQL database can simplify the design of a PHP application's login system by allowing us to store multiple user roles in a single column. This means we can easily check for specific roles when granting access to certain parts of the application, reducing the complexity of our queries and improving performance.
// Assuming we have a users table with a column named 'role' using SET data type
// Check if user has admin role
$userRole = "admin";
$query = "SELECT * FROM users WHERE username = ? AND FIND_IN_SET(?, role)";
$stmt = $pdo->prepare($query);
$stmt->execute([$username, $userRole]);
$user = $stmt->fetch();
if ($user) {
// User has admin role, grant access to admin features
// Redirect to admin dashboard
} else {
// User does not have admin role, display error message
echo "You do not have permission to access this page.";
}