2

コード イグナイター - PHP - Mysql。私はショッピング Web サイトに取り組んでおり、多数の製品と各製品のクライアント価格設定オプション (ユーザーごとに異なるレートでの割引を含む) のため、クライアントのログイン時に一時テーブルを作成しました。テーブルは正常に作成されていますが、サイトをナビゲートすると、常に永続的であるとは限りません。

たとえば、サイトの各ページで "Select * From Temp_Products" というクエリを実行すると、空のセットが返されるか、一部のページに Temp_Products が存在しないと表示されます。

問題がどこにあるのかわかりません。これを引き起こす特定のパターンやトリガーはないようです。

また、e コマース サイトは通常、カタログと在庫をどのように実装していますか? どんな情報でも助かります!!

ありがとう !

4

2 に答える 2

0

データベース内にテーブルを作成します
: id - id_user - id_table
後、テーブルのアイテムを取得できるフィールドをセッションに入れます。
db es: Mytable のデータと対話できるライブラリを作成し、このライブラリで、セッションのフィールドから開始して、db の項目を自動的に取得する関数を作成します。

于 2012-10-01T18:44:30.517 に答える
0

一時テーブルを使用する場合、いくつかの落とし穴があります。

まず第一に、永続的な接続を使用する場合 (絶対にすべきではありません)、永続的な接続は CI セッション間で共有されるため、一時テーブルは Ci セッション間で共有されます。これはおそらくあなたが望むものではありません。

永続的な接続を使用しない場合 (必要に応じて)、一時テーブルは現在の要求の間だけ存続します。CI インスタンスがすべてのリクエストの最後で停止すると、データベース接続がクリーンアップされ、その接続の一時テーブルがすべて削除されます。

あなたの場合、おそらくセッションIDをキーとして使用する「通常の」テーブルが必要です。セッションが終了した後、セッション固有のエントリをクリーンアップすることを忘れないでください。これは簡単ではありません。これは、codeigniter が遅延ガベージ コレクション メカニズムを使用するためです。したがって、セッションが存在するかどうかを定期的にチェックし、これに基づいて動作する cronjob が必要になるでしょう。

于 2012-10-23T10:51:27.457 に答える