Codeigniter에서 쿼리 성공 감지
데이터베이스 쿼리를 실행할 때 성공 여부를 확인하는 것이 중요합니다. 귀하의 경우 삭제 컨트롤러 메서드 내의 업데이트 쿼리는 데이터베이스가 변경된 후에도 아무것도 반환하지 않습니다. 이 문제를 해결하려면 다음 지침을 따르십시오.
1. 향상된 컨트롤러 기능(소프트 삭제)
보안상의 이유로 사용자 ID를 URL을 통해 전달하지 마세요. 대신 $_POST를 사용하여 데이터 쓰기 중에 데이터를 전송하세요. 수정된 컨트롤러 기능은 다음과 같습니다.
public function softDeleteUser(): void { $userId = $this->input->post('user_id'); if (!$userId) { add_flash_message('alert', 'Required data not supplied'); } elseif (!$this->Crm_user_model->update($userId, ['deleted' => true])) { add_flash_message('alert', 'Failed to soft delete user'); } else { add_flash_message('info', 'Soft deleted user'); } }
2. 향상된 모델 방법
모델에서만 쿼리를 수행합니다. 쿼리에는 구문 오류가 없어도 데이터베이스는 변경되지 않으므로 여러 지점에서 쿼리 프로세스를 확인하세요.
public function update(int $userId, array $newData): int { // Prevent modifying the user_id column unset($newData['user_id']); if ($this->db->update('user_tablename', $newData, ['user_id' => $userId])) { $affectedRows = $this->db->affected_rows(); if ($affectedRows) { // Log successful changes if applicable } return $affectedRows; } return 0; }
이러한 지침을 따르면 데이터베이스 쿼리의 성공 여부를 효과적으로 판단하고 처리할 수 있습니다. 그에 따라 성공 및 실패 시나리오가 모두 표시됩니다.
위 내용은 CodeIgniter에서 쿼리 성공을 확인하는 방법: 내 업데이트 쿼리가 아무것도 반환하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!