Este ejemplo muestra como preparar una sentencia con
    sqlsrv_prepare() y reejecutarla múltiples veces (con 
    diferentes valores de parámetros) utilizando sqlsrv_execute().
    
<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}
$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";
// Inicializar los parámetros y preparar la sentencia.
// Las variables $qty y $id se pasan como parámetro a la sentencia $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}
// Configurar la información de SalesOrderDetailID y OrderQty. 
// Este array liga el orden ID al orden de cantidad en las parejas  key=>value.
$orders = array( 1=>10, 2=>20, 3=>30);
// Ejecuta la sentencia para cada orden.
foreach( $orders as $id => $qty) {
    // Como $id y $qty se pasan como parámetro a $stmt1, sus valores
    // actualizados se utilizan en cada ejecución de la sentencia.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>