1

わかりました、これは明らかに完全なコードではありませんが、これはエラーが発生する場所までのコードです。

$this->db->select('post_likes');
$this->db->from('user_dash_posts');
$this->db->where('post_idn', $idn);
$this->db->where('isactive', '0');
if($this->db->count_all_results() > 0)
{
    $dataDB = $this->db->get();

get()ここに表示する最後の行のステートメントに関して、「テーブルが使用されていません」と表示されます。私は完全なクエリを手書きすることに慣れていたので、CIデータベースクラス/ヘルパー全体にまだ慣れていません。しかし、私は ORM レイヤーについて学び、それらに慣れようとしています。しかし、それは私の質問に対するミュートポイントです。私はこの声明で何が間違っていたのか、何が修正されているのか、そして可能であればどのように間違っていたのかを理解しようとしています。

4

2 に答える 2

1

ドキュメントによると:

通常、Active Recordの呼び出しが完了すると、保存されているすべての情報が次の呼び出しのためにリセットされます。

クエリを再利用する場合は、同じページの下部にあるキャッシュ方法を使用してください。完了したら、キャッシュをフラッシュすることを忘れないでください。

$this->db->start_cache();
$this->db->select('post_likes');
$this->db->from('user_dash_posts');
$this->db->where('post_idn', $idn);
$this->db->where('isactive', '0');
$this->db->stop_cache();

if($this->db->count_all_results() > 0) {
     $dataDB = $this->db->get();
}
$this->db->flush_cache();

編集:

2つではなく1つのクエリを使用する別のオプション:

$this->db->select('post_likes');
$this->db->from('user_dash_posts');
$this->db->where('post_idn', $idn);
$this->db->where('isactive', '0');
$query = $this->db->get();

if($query->num_rows() > 0) {
     $dataDB = $query->result();
}
于 2012-10-06T21:18:54.497 に答える
0

次のように、行を削除してテーブル名を関数 $this->db->from('user_dash_posts');に追加するだけです。get()$dataDB = $this->db->get('user_dash_posts');

于 2012-10-07T03:30:05.013 に答える