>백엔드 개발 >PHP 튜토리얼 >CodeIgniter에서 쿼리 성공을 확인하는 방법: 내 업데이트 쿼리가 아무것도 반환하지 않는 이유는 무엇입니까?

CodeIgniter에서 쿼리 성공을 확인하는 방법: 내 업데이트 쿼리가 아무것도 반환하지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-31 03:02:02965검색

How to Determine Query Success in CodeIgniter: Why My Update Query Returns Nothing?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.