※ ChatGPTを利用し、要約された質問です(原文:結果セットは明示的に開放しない限り、保証されるのでしょうか?)
結果セットは明示的に開放しない限り、保証されるのでしょうか?
このQ&Aのポイント
PHP5からMySQL5を使っています。mysql_queryの戻り値であるリソースの変数名を別にすれば、結果セットは明示的に開放しない限り、保証されるのでしょうか?
結果セットはmysql_queryの戻り値であるリソースの変数名を別にすることで、明示的に開放しない限り、保証されるのでしょうか?
PHP5からMySQL5を使っており、mysql_queryの戻り値であるリソースの変数名を別にすると、結果セットは明示的に開放しない限り、保証されるのか疑問です。
結果セットは明示的に開放しない限り、保証されるのでしょうか?
PHP5からMySQL5を使っています。
mysql_queryの戻り値であるリソースの変数名を別にすれば、
結果セットは明示的に開放しない限り、保証されるのでしょうか?
例)
テーブルA
FLD1, FLD2
------------
a 1
b 2
c 3
$link=mysql_connect(ホスト, ユーザ, パスワード);
mysql_select_db(データベース名);
$sql = "select * from A";
$res = mysql_query($sql);
while ( $row = mysql_fetch_array($res) ) {
$fld1 = $row["FLD1"];
// 以下、極端な無駄な例ですが・・・
// リソース変数名を$resと$res2を分けているので、
// $resで回っている結果セットは保証されるのでしょうか?
// 明示的にmysql_free_result($res);を呼び出さない限り
// $resは mysql_queryなどで同じ$resで上書きしない限り
// 生き残っているのでしょうか?
$sql2 = "select * from A where FLD1='$fld1'";
$res2 = mysql_query($sql2);
if ( $row2 = mysql_fetch_array($res2) ) {
print "FLD2=".$row2["FLD2"];
}
}
// 最後に
mysql_free_result($res);
mysql_free_result($res2);
mysql_close($link);
以上です。