0

記事というテーブルにカウンターという列があります

問題は、この列の値を約 1 増やすにはどうすればよいかということです。そのため、コントローラーまたはモデルで update db 関数を使用します。

たとえば、次のようなことを考えています。

 $id = 5; //article id (I will get that from the url or db, no problem with that)
 $this->db->update("current counter column value plus one where id column equals $id "); 

そして、私が記事のビュー数を取得したと仮定しましょう:

$this->db->select_sum("counter")->get("articles");

ユーザーのIPを検証する必要があることを知っているので、たとえば、ページロードごとではなく、5分後にのみカウントします。しかし、それは別の話です;)。私はこの問題を終わらせる必要があります。

4

1 に答える 1

2

通常のクエリを使用できます (バインディングあり):

$sql = "UPDATE articles SET counter = counter + 1 WHERE id = ?";
$this->db->query($sql, array($id));

または、AR を使用して:

$query = $this->db->update('articles')
                   ->set('counter','counter+1', FALSE)
                   ->where('id', $id);

の 3 番目の引数としての FALSE はset()、列名をエスケープしないように指示します。
インクリメントのみが必要な場合は、ビュー数を取得する必要はありません。

于 2012-12-18T18:41:53.593 に答える