對於數字字段的加減,可以直接使用 setInc() 與 setDec() 方法
ThinkPHP 內置了對統計數據(數字字段)的更新方法:
setInc():將數字字段值增加
setDec():將數字字段值減少
setInc()
ThinkPHP setInc() 方法將數字字段值增加。
例子:
<?php public function update() { header("Content-Type:text/html; charset=utf-8"); $result = M("User")->where('uid = 2')->setInc('score', 3); if ($result !== false) { echo '數據更新成功!'; } else { echo '沒更新任何數據!'; } }
上面例子執行的 SQL 語句為:
UPDATE user SET score=score+3 WHERE uid = 2
setInc() 方法中最后一個參數為數字字段增加的值,如果省略則默認增加 1 。
setDec()
setDec() 方法將數字字段值減少。
例子:
<?php public function update() { header("Content-Type:text/html; charset=utf-8"); $result = M("User")->where('uid = 2')->setDec('score', 3); if ($result !== false) { echo '數據更新成功!'; } else { echo '沒更新任何數據!'; } }
上面例子執行的 SQL 語句為:
UPDATE user SET score=score-3 WHERE uid = 2
setDec() 方法中最后一個參數為數字字段減少的值,如果省略則默認減少 1 。
提示
在 ThinkPHP 3.0 版本中,setInc() 與 setDec() 方法取消了條件參數,因此必須配合 where() 方法一起使用。setInc() 與 setDec() 方法也支持連貫操作,從而可以構造更加復雜的更新條件。