반응형
codeigniter의 활성 레코드 구문을 사용하여 mysql 데이터베이스의 증가 필드
활성 레코드 구문을 사용하여 레코드 필드를 늘리려 고 시도하는 다음 php-codeigniter 펼쳐보기가 있습니다.
$data = array('votes' => '(votes + 1)');
$this->db->where('id', $post['identifier']);
$this->db->update('users', $data);
그러면 다음 SQL이 생성됩니다.
"UPDATE
사용자 SET
투표 = '(votes + 1)' WHERE
ID = '44'
"
실행되지는 않지만 SQL은 내가 원하는 작업을 수행합니다. "UPDATE
사용자 SET
투표 = (votes + 1) WHERE
ID = '44'
"`<-(votes + 1)
누구나 codeigniter의 활성 레코드 구문으로 다음 유형의 쿼리를 구현하는 방법을 알고 있습니까?
다음과 같이 할 수 있습니다.
$this->db->where('id', $post['identifier']);
$this->db->set('votes', 'votes+1', FALSE);
$this->db->update('users');
이것이 작동하는 이유는 세 번째 (선택적) FALSE 변수가 CodeIgniter에게 백틱 ( '
)으로 생성 된 쿼리를 보호하지 않도록 지시하기 때문 입니다. 이는 생성 된 SQL이 다음
UPDATE users SET votes= votes + 1 WHERE id= '44'
과 같음 을 의미합니다. 알아 차리면 백틱이에서 제거되어 '(votes+1)'
투표 속성을 1 씩 증가시키는 원하는 효과를 생성합니다.
$data = array('votes' => 'votes + 1');
foreach ($data as $key=>$val) {
$this->db->set($key, $val, FALSE);
}
$this->db->where('id', $post['identifier']);
$this->db->update('users', $data);
다음과 같이 할 수 있습니다.
public function increament_product_count(){
$product_id=$this->input->post('product_id');
$this->db->where('id', $product_id);
$this->db->set('click_count', 'click_count+1', FALSE);
$this->db->update('tbl_product');
}
반응형
'ProgramingTip' 카테고리의 다른 글
Mongodb 쿼리 주어진 키가있는 레코드를 선택 선택 (0) | 2020.12.11 |
---|---|
URL을 사용하여 원격 서버에 파일이 있는지 확인 (0) | 2020.12.11 |
추적되지 않은 파일을 제거하도록 git에게 알립니다. (0) | 2020.12.11 |
Android Studio에서 실행에 빌드 변형을 가져 오는 방법은 무엇입니까? (0) | 2020.12.11 |
ES6 배열 기본 변수 (0) | 2020.12.11 |