©
This document uses PHP Chinese website manual Release
(No version information available, might only be in Git)
sqlsrv_cancel — Cancels a statement
$stmt
)Cancels a statement. Any results associated with the statement that have not been consumed are deleted. After sqlsrv_cancel() has been called, the specified statement can be re-executed if it was created with sqlsrv_prepare() . Calling sqlsrv_cancel() is not necessary if all the results associated with the statement have been consumed.
stmt
The statement resource to be cancelled.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 sqlsrv_cancel() example
<?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 sales accounted for the first $ $salesTotal in revenue.<br />" ;
// Cancel the pending results. The statement can be reused.
sqlsrv_cancel ( $stmt );
?>
The main difference between sqlsrv_cancel() and sqlsrv_free_stmt() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare() . A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.