What are the potential reasons for the error message "sqlsrv_query() expects parameter 1 to be resource, boolean given" in PHP?

The error message "sqlsrv_query() expects parameter 1 to be resource, boolean given" typically occurs when the connection to the SQL Server database fails, resulting in a boolean value (false) being returned instead of a resource. This can happen due to incorrect connection settings, such as wrong server name, username, password, or database name. To solve this issue, you need to ensure that the database connection is established successfully before executing the query.

// Establish connection to SQL Server
$serverName = "your_server_name";
$connectionOptions = array(
    "Database" => "your_database_name",
    "Uid" => "your_username",
    "PWD" => "your_password"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);

// Check if connection is successful before executing query
if ($conn) {
    $query = "SELECT * FROM your_table";
    $result = sqlsrv_query($conn, $query);
    if ($result === false) {
        die(print_r(sqlsrv_errors(), true));
    }
    // Process the query result
} else {
    die(print_r(sqlsrv_errors(), true));
}