Codeigniter의 열 테이블 값을 배열로 업데이트 [중복]

Aug 16 2020

다음과 같은 업데이트 테이블 기능이 있습니다.

$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 Aug 17 2020 at 05:55

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 Aug 17 2020 at 07:47

$ query-> set으로 BULK 업데이트 방법을 변경하고 여기에이 코드를 포함하십시오.

$this->db->set('total_pending', "total_pending+$amount");
AnkitJindal Aug 17 2020 at 05:08

아래 방법 중 하나를 사용해보십시오.

열을 개별적으로 설정하려는 경우 다음과 같은 일부 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
                );