How can the PHP function sqlsrv_query be effectively used to handle errors and successful transactions with MSSQL?

When using the sqlsrv_query function in PHP to interact with a MSSQL database, it is important to handle errors and successful transactions effectively. One way to do this is by checking the return value of sqlsrv_query to determine if the query was executed successfully or not. Additionally, using sqlsrv_errors() can help retrieve any error messages generated during the query execution.

// Execute a query using sqlsrv_query
$query = "SELECT * FROM Table";
$result = sqlsrv_query($conn, $query);

// Check if the query was successful
if($result === false) {
    // Handle error
    $errors = sqlsrv_errors();
    foreach ($errors as $error) {
        echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
        echo "Code: " . $error['code'] . "<br />";
        echo "Message: " . $error['message'] . "<br />";
    }
} else {
    // Process results
    while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
        // Do something with the data
    }
}

// Free the result set
sqlsrv_free_stmt($result);