[PHP-users 20515]Re: pg_free_result呼び出しタイミングについて

Sumito_Oda oda @ bst.jp
2004年 2月 21日 (土) 18:26:39 JST


織田です。

私はPostgresは余り良く知らないので、MySQLの場合で。

例に示されたサンプルコードでは、クエリの結果ID
(ResultSetへのポインタか、ResultStatus)である$wkResultが
どこで参照不要になっているのかが判りません。
それによって答えが変わってきます。

サンプルCは最初のクエリの結果IDはGCの処理に任されると思うの
ですが、これが実際にどの時点で開放されるのか私は判りません。
スクリプトの終了まで持ち越されるのかも知れません。

結果IDが、ResultSetへのポインタの場合は構いませんが、
ResultStatusだった場合にfree_resultを行うと、当然のことながら
WARNINGが出されます。クエリ内容などによってもfree_resultを
行う必要があるのか、そもそも行ってはいけないのか違ってきます。

個人的にはPHPの場合、スクリプトの終了で自動的に開放されるので
メモリが少ない環境か、ResultSetが大きいクエリを発行した時に限って
意識的にfree_resultを行えば良いと思います。

-- 
Sumito_Oda mailto:oda @ bst.jp


PHP-users メーリングリストの案内