ホームページ  >  記事  >  バックエンド開発  >  モノモーフィックモードを使用してデータベースを呼び出すにはどうすればよいですか?

モノモーフィックモードを使用してデータベースを呼び出すにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:27:03758ブラウズ

シングルステート モードを使用してデータベースを呼び出す場合、メソッドは結果セットとデータベース接続オブジェクトを返します。
接続オブジェクトが破棄中に破棄されることはわかっていますが、返された結果セットを解放するにはどうすればよいですか?配列は配列を返し、結果セットを解放しますが、場合によっては、配列の代わりに結果セットを返す必要がある場合があります。結果セットを解放するには、どのように呼び出す必要がありますか?
free() などの別のメソッドをクラス内に記述して、それをクラス外で呼び出す必要がありますか?このように書くのは良くないような気がしますが、どう対処されますか?


ディスカッションへの返信(解決策)

結果セットのリソースが返される場合、データベース操作をカプセル化する必要はありません
たとえば、

$rs = db::getInstance()->query($sql);$row = mysql_fetch_assoc($rs);
、変だと思いませんか?

カプセル化の目的は操作を簡素化することであり、当然ある程度の柔軟性は失われます
シングルトン データベース オブジェクトは明らかに最後のクエリの結果セットのみをキャッシュする必要があります。そうしないと、読み取りたいのか解放したいのかがわかりません。結果を操作する方法がわかりません

結果セットのリソースが返される場合、データベース操作をカプセル化する必要はありません
たとえば
奇妙だと思いませんか?

カプセル化の目的は操作を簡素化することであり、当然ある程度の柔軟性は失われます
シングルトン データベース オブジェクトは明らかに最後のクエリの結果セットのみをキャッシュする必要があります。そうしないと、読み取りたいのか解放したいのかがわかりません。どうすればいいのか迷っています

モデレーターさん、早速の返信ありがとうございます。
返されるのは結果セットであり、カプセル化する必要はありません。インターネット上の多くのデータベース操作クラスが結果セットを返すのを見たばかりです。
モデレーターに何かアドバイスをお願いします。データベースプロジェクトに接続するために単相クラスを使用することについてアドバイスをください。それは頻繁に使用されますか?

まず、結果セット リソースと結果セット オブジェクトの違いを明確にしましょう。
mysql_query('select...') によって返されるリソース番号などの結果セット リソース (リソース)
mysqli_query( など) の結果セット オブジェクト (オブジェクト) 'select...') .') は mysqli_result オブジェクトを返します

データベース クラスを自分でカプセル化する場合は、db::query にオブジェクト (db_result など) を返させることもできます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:FastCGI エラー次の記事:FastCGI エラー