What are the advantages of using a database for user permissions in PHP scripts?

When managing user permissions in PHP scripts, using a database to store and retrieve permission levels can provide several advantages. This approach allows for easier management and scalability of permissions, as permissions can be easily added, edited, or removed from the database without changing the code. It also provides a centralized location for storing permission data, making it easier to enforce security policies across different parts of the application. Additionally, using a database allows for more flexibility in assigning and revoking permissions for individual users or user groups.

// Connect to the database
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "permissions";

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Query the database for user permissions
$user_id = 1;
$sql = "SELECT permission_level FROM user_permissions WHERE user_id = $user_id";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Permission Level: " . $row["permission_level"];
    }
} else {
    echo "0 results";
}

$conn->close();