此示例演示如何使用 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 绑定到 $stmt1,所以它们的值会在每次执行语句时更新。
if( sqlsrv_execute( $stmt ) === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
?>