©
This document uses PHP Chinese website manual Release
(No version information available, might only be in Git)
sqlsrv_free_stmt — Frees all resources for the specified statement
$stmt
)Frees all resources for the specified statement. The statement cannot be used after sqlsrv_free_stmt() has been called on it. If sqlsrv_free_stmt() is called on an in-progress statement that alters server state, statement execution is terminated and the statement is rolled back.
stmt
The statment for which resources are freed.
Note that NULL
is a valid parameter value. This allows the function to be
called multiple times in a script.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 sqlsrv_free_stmt() 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 ));
}
$stmt = sqlsrv_query ( $conn , "SELECT * FROM Table_1" );
if( $stmt === false ) {
die( print_r ( sqlsrv_errors (), true ));
}
sqlsrv_free_stmt ( $stmt );
?>
The main difference between sqlsrv_free_stmt() and sqlsrv_cancel() 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.
[#1] Anonymous [2015-01-19 19:28:06]
If you accidentally call this with an invalid $stmt resource, you may see unexpected fatal errors.
I had left behind a call here when cleaning up some code and this caused the my IIS server to generate an error 500 resource not found error. Furthermore it seemed to only affect some users and not all and I could not isolate why only selected users got the error when it was called for all users.