(无版本信息可用,可能只存在于 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_cancel() 取消的语句资源可以重新执行,前提是它是在 sqlsrv_prepare() 中创建的。使用 sqlsrv_free_statement() 取消的语句资源不能重新执行。