function updateViews($id){
$this->db->where('id',$id);
$this->db->set('views','`views`+1', FALSE);
$result = $this->db->update('company');
return $result;
}
此函数将列“视图”更新为6而不是1(如编写)。
任何人都可以解释为什么会这样吗?
答案 0 :(得分:0)
您的代码显示:
$this->db->set('views','`views`+1', FALSE);
我认为第二个视图参数周围的引号太多了。
尝试:
$this->db->set('views', 'views+1', FALSE);
或者:
如果您使用id作为模型的参数来将视图更新为1,那么您可以通过一种方式创建一个私有函数来查找“view”的值,然后使用公共函数来更新值。
// Pass the $id in as a parameter
private function _getViewsValue($id) {
// Select the views field
$this->db->select('views');
// Where the passed in parameter id is equal to the row id
$this->db->where('id', $id);
// Return the value
return $this->db->get('company')->row()->views;
}
// Function to increment the views by 1. Pass in $id as parameter
public function incrementViews($id) {
// Call the private function _getViewsValue to return the views value and store in variable $views and increment by 1
$views = $this->_getViewsValue($id) + 1;
// Update the row
$this->db->update('company', array('views' => $views), array('id' => $id))
}
有时我需要调试时使用echo $ varible;模具();
希望这有助于:)