シングルステート モードを使用してデータベースを呼び出す場合、メソッドは結果セットとデータベース接続オブジェクトを返します。
接続オブジェクトが破棄中に破棄されることはわかっていますが、返された結果セットを解放するにはどうすればよいですか?配列は配列を返し、結果セットを解放しますが、場合によっては、配列の代わりに結果セットを返す必要がある場合があります。結果セットを解放するには、どのように呼び出す必要がありますか?
free() などの別のメソッドをクラス内に記述して、それをクラス外で呼び出す必要がありますか?このように書くのは良くないような気がしますが、どう対処されますか?
結果セットのリソースが返される場合、データベース操作をカプセル化する必要はありません
たとえば、
$rs = db::getInstance()->query($sql);$row = mysql_fetch_assoc($rs);、変だと思いませんか?
結果セットのリソースが返される場合、データベース操作をカプセル化する必要はありません
たとえば
奇妙だと思いませんか?
カプセル化の目的は操作を簡素化することであり、当然ある程度の柔軟性は失われます
シングルトン データベース オブジェクトは明らかに最後のクエリの結果セットのみをキャッシュする必要があります。そうしないと、読み取りたいのか解放したいのかがわかりません。どうすればいいのか迷っています
モデレーターさん、早速の返信ありがとうございます。
返されるのは結果セットであり、カプセル化する必要はありません。インターネット上の多くのデータベース操作クラスが結果セットを返すのを見たばかりです。
モデレーターに何かアドバイスをお願いします。データベースプロジェクトに接続するために単相クラスを使用することについてアドバイスをください。それは頻繁に使用されますか?
まず、結果セット リソースと結果セット オブジェクトの違いを明確にしましょう。
mysql_query('select...') によって返されるリソース番号などの結果セット リソース (リソース)
mysqli_query( など) の結果セット オブジェクト (オブジェクト) 'select...') .') は mysqli_result オブジェクトを返します
データベース クラスを自分でカプセル化する場合は、db::query にオブジェクト (db_result など) を返させることもできます