Codeigniter의 열 테이블 값을 배열로 업데이트 [중복]
다음과 같은 업데이트 테이블 기능이 있습니다.
$update_data = array( 'total_pending'=>$amount,
'total_received'=>0,
'total_send'=>0,
'my_wallet'=>0,
'spen_in_app'=>0,
'check_in'=>0,
'upload_video'=>0,
'from_fans'=>0,
'purchased'=>0
);
잘 작동하지만 total_pending + $ amount로 total_pending 열을 업데이트하고 싶지만 다음과 같은 오류가 발생합니다.
A non-numeric value encountered
누구든지 문제 해결을 위해 나를 도울 수 있습니까? 감사
답변
1 DilipPatel
total_pending이 열 이름이기 때문에 이렇게 사용할 수 있습니다.
$update_data = array( 'total_pending'=> `total_pending` + $amount,
'total_received'=>0,
'total_send'=>0,
'my_wallet'=>0,
'spen_in_app'=>0,
'check_in'=>0,
'upload_video'=>0,
'from_fans'=>0,
'purchased'=>0
);
Armnature
$ query-> set으로 BULK 업데이트 방법을 변경하고 여기에이 코드를 포함하십시오.
$this->db->set('total_pending', "total_pending+$amount");
AnkitJindal
아래 방법 중 하나를 사용해보십시오.
열을 개별적으로 설정하려는 경우 다음과 같은 일부 if 조건을 설정할 수 있습니다.
$this->db->set('total_received', 0); $this->db->set('my_wallet', 0);
$this->db->set('total_send', 0); $this->db->set('from_fans', 0);
$this->db->set('my_wallet', 0); $this->db->set('check_in', 0);
$this->db->set('purchased', 0); $this->db->set('upload_video', 0);
$this->db->set('spen_in_app', 0); $this->db->where(condition); //like ('id', $id) $this->db->set('total_pending', "total_pending+$amount"); $this->db->update('tablename');
또는 단일 배열의 모든 열을 보내는 아래 방법을 시도 할 수 있습니다.
$update_data = array( 'total_pending'=> `total_pending` + $amount,
'total_received'=>0,
'total_send'=>0,
'my_wallet'=>0,
'spen_in_app'=>0,
'check_in'=>0,
'upload_video'=>0,
'from_fans'=>0,
'purchased'=>0
);