(无版本信息可用,可能仅在 Git 中)
sqlsrv_cancel — 取消语句
取消语句。与语句关联的任何尚未使用的结果都将被删除。在调用 sqlsrv_cancel() 后,如果指定的语句是用 sqlsrv_prepare() 创建的,则可以重新执行该语句。如果已使用与语句关联的所有结果,则无需调用 sqlsrv_cancel()。
stmt
要取消的语句资源。
示例 #1 sqlsrv_cancel() 示例
<?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 = "SELECT Sales FROM Table_1";
$stmt = sqlsrv_prepare( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
if( sqlsrv_execute( $stmt ) === false) {
die( print_r( sqlsrv_errors(), true));
}
$salesTotal = 0;
$count = 0;
while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
$qty = $row[0];
$price = $row[1];
$salesTotal += ( $price * $qty);
$count++;
}
echo "$count 个销售额占收入的前 $$salesTotal。<br />";
// 取消挂起的结果。该语句可以重复使用。
sqlsrv_cancel( $stmt);
?>
sqlsrv_cancel() 和 sqlsrv_free_stmt() 之间的主要区别在于,如果使用 sqlsrv_prepare() 创建了语句资源,则可以使用 sqlsrv_cancel() 取消该语句资源并重新执行。使用 sqlsrv_free_statement() 取消的语句资源无法重新执行。