How can PHP be used to efficiently store and retrieve multiple permissions for a user in a database?

To efficiently store and retrieve multiple permissions for a user in a database, you can create a permissions table with columns for user_id and permission_name. Each row in the table represents a user's permission. To retrieve all permissions for a specific user, you can query the permissions table based on the user_id.

// Assuming you have a database connection established

// Store permissions for a user
$user_id = 1;
$permissions = ['create', 'read', 'update'];

foreach ($permissions as $permission) {
    $query = "INSERT INTO permissions (user_id, permission_name) VALUES ($user_id, '$permission')";
    mysqli_query($conn, $query);
}

// Retrieve permissions for a user
$query = "SELECT permission_name FROM permissions WHERE user_id = $user_id";
$result = mysqli_query($conn, $query);

$permissions = [];
while ($row = mysqli_fetch_assoc($result)) {
    $permissions[] = $row['permission_name'];
}

print_r($permissions);