ConFoo: Call for paper is now Open

mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_statementステートメントのメモリを開放する

説明

bool mssql_free_statement ( resource $stmt )

mssql_free_statement() をコールする必要があるのは、 スクリプトの実行中に大量のメモリを使用することが気になる場合のみです。 すべてのステートメントメモリはスクリプトが終了する際に自動的に開放 されます。ステートメント ID を引数に指定して mssql_free_statement() をコールすることで、 関連付けられたステートメントのメモリが開放されます。

パラメータ

stmt

mssql_init() で取得したステートメントリソース。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 mssql_free_statement() の例

<?php
// 新しいステートメントを作成します
$stmt mssql_init('test');

// ここで値をバインドし、ステートメントを実行します

// 処理を終えたら、次のように
// mssql_free_statement をコールしてメモリ上から削除します
mssql_free_statement($stmt);
?>

参考

  • mssql_bind() - ストアドプロシージャまたはリモートストアドプロシージャへパラメータを追加する
  • mssql_execute() - MS SQL サーバーデータベースでストアドプロシージャを実行する
  • mssql_init() - ストアドプロシージャまたはリモートのストアドプロシージャを初期化する
  • mssql_free_result() - 結果保持用メモリを解放する

add a note add a note

User Contributed Notes 1 note

up
1
mitch at 1800radiator dot kom
9 years ago
Maybe it's unique to my FreeTDS configuration, but if I don't call mssql_free_statement() after every stored procedure (i.e. mssql_init, mssql_bind, mssql_execute, mssql_fetch_array), all subsequent stored procedures on the same database connection will fail.

I only mention it because this man-page deprecates the use of mssql_free_statement(), saying it's only there for run-time memory concerns.  At least in my case, it's also a crucial step in the process of running a stored procedure.  If anyone else has problems running multiple stored procedures on the same connection, I hope this helps them out.
To Top