此範例示範如何使用 sqlsrv_prepare() 準備陳述式,並使用 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 = ?";
// 初始化參數並準備敘述。
// 變數 $qty 和 $id 會繫結到敘述 $stmt。
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}
// 設定 SalesOrderDetailID 和 OrderQty 資訊。
// 這個陣列以鍵值對的方式將訂單 ID 對應到訂單數量。
$orders = array( 1=>10, 2=>20, 3=>30);
// 對每個訂單執行敘述。
foreach( $orders as $id => $qty) {
// 因為 $id 和 $qty 繫結到 $stmt,每次執行敘述時都會使用它們更新後的值。
if( sqlsrv_execute( $stmt ) === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
?>