4

実際、stackoverflow自体にいくつかの提案がありましたが、この問題の正確な解決策は得られませんでした。これが重複しているとは思わないでください。

codeigniterサイトにmemcacheを使用し、クエリを作成するためにアクティブレコードを使用しています。使用しています

    this->db->return_query_string();

実行する前にアクティブなレコードからクエリを取得します。次に、同じクエリを実行せずにアクティブなレコードをフラッシュします。

さまざまな参考文献からも

     $this->db->start_cache();
     $this->db->stop_cache();
     $this->db->flush_cache()

これは正確な結果ですか?もしそうなら、実行せずにキャッシュされたクエリを取得するにはどうすればよいですか?

4

2 に答える 2

5

要件に合わせてこれら 2 つの機能を使用できます

public function _compile_select($select_override = FALSE)
public function _reset_select()

それらを使用するには、公開キーワードまたは非公開キーワードを削除する必要があります。
system/database/DB_active_rec.php に移動します これらの関数から public または protected キーワードを削除します

使用例

$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();

$this->db->_reset_select();

$subQuery にはクエリ文字列が含まれ、_reset_select はアクティブなレコードをリセットして、新しいクエリを作成できるようにします。

于 2013-03-20T04:33:02.550 に答える