현재 위치: > 최신 기사 목록> pdo :: stattribute 함수를 통해 PDO 연결의 오류 처리 방법을 제어하는 방법?

pdo :: stattribute 함수를 통해 PDO 연결의 오류 처리 방법을 제어하는 방법?

M66 2025-07-18

PHP에서 PDO (PHP Data Objects)는 데이터베이스 액세스 계층의 추상 인터페이스로, 다른 데이터베이스에 액세스 할 수있는 통합 방법을 제공합니다. PDO는 풍부한 데이터베이스 작업 기능을 제공 할뿐만 아니라 개발자가 오류 처리를 잘 제어 할 수 있도록합니다. PDO 클래스의 setAttribute 메소드를 통해 pdo :: att_errmode 속성을 설정하여 PDO 연결의 오류 처리 방법을 제어 할 수 있습니다.

1. pdo :: att_errmode 란 무엇입니까?

PDO :: Att_ERRMODE 는 PDO의 일반적인 속성으로 데이터베이스 작업 중에 오류를 처리하는 방법을 정의하는 데 사용됩니다. pdo :: attr_errmode 의 값을 설정하면 오류가 발생할 때 PDO가 응답하는 방법을 제어 할 수 있습니다. 일반적으로 다음 모드가 있습니다.

  • pdo :: errmode_silent : 기본값, pdo는 예외를 던지지 않으며 오류 메시지 만 설정되지만 출력이나 오류가 발생하지 않습니다.

  • pdo :: errmode_warning : 오류가 발생하면 PDO는 PHP 경고를 트리거합니다.

  • pdo :: errmode_exception : 오류가 발생하면 pdo는 pdoexception 예외를 던지며 일반적으로 예외를 포착하고 처리하는 데 사용됩니다.

이러한 오류 처리 패턴을 사용하면 특정 요구에 따라 다른 오류 처리 전략을 선택할 수 있습니다.

2. pdo :: setattribute를 사용하여 오류 처리 모드를 설정하십시오

pdo :: stattribute 함수를 통해 pdo :: attr_errmode를 설정하려면 먼저 pdo 인스턴스를 생성하고 인스턴스의 setattribute 메소드를 호출하여 오류 처리 모드를 구성해야합니다. 다음은 pdo :: att_errmode 속성을 설정하는 방법을 보여주는 샘플 코드입니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 데이터베이스 연결 매개 변수</span></span><span>
</span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb'</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;

</span><span><span class="hljs-comment">// 만들다PDO예</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>);

    </span><span><span class="hljs-comment">// 예외를 던지기 위해 오류 처리 모드를 설정하십시오</span></span><span>
    </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">setAttribute</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span>, PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>);

    </span><span><span class="hljs-comment">// 데이터베이스 작업을 수행합니다</span></span><span>
    </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">exec</span></span><span>(</span><span><span class="hljs-string">'INVALID SQL QUERY'</span></span><span>); </span><span><span class="hljs-comment">// 우연히 쓰여졌습니다SQL오류 처리를 테스트하기위한 명령문</span></span><span>

} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-comment">// 예외를 잡고 처리합니다</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'데이터베이스 작동 오류: '</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

위의 코드에서는 $ pdo-> setattribute (pdo :: attr_errmode, pdo :: errmode_exception)를 통해 오류 처리 모드를 pdo :: errmode_exception 으로 설정합니다. 즉, 데이터베이스 작동에서 오류가 발생하면 pdo가 pdoexception 예외를 던집니다. 시도 ... Catch 문을 통해 예외를 포착하고 그에 따라 처리 할 수 있습니다.

3. 오류 처리 모드의 응용 시나리오

올바른 오류 처리 모드를 선택하는 것은 애플리케이션의 안정성과 유지 관리에 중요합니다. 다른 오류 처리 모드는 다른 시나리오에 적합합니다.

  • pdo :: errmode_silent : 오류가 발생할 때 프로그램 실행에 영향을 미치지 않으려는 경우에 적합합니다. 경우에 따라 데이터베이스 쿼리가 실패하더라도 프로그램을 계속 실행할 수 있습니다. 예를 들어, 비정규 쿼리를 실행할 때이 모드를 사용하도록 선택할 수 있습니다.

  • PDO :: errmode_warning : 개발 단계 또는 잠재적 문제를 촉발 해야하는 상황에 적합합니다. 경고를 통해 개발자는 프로그램을 즉시 중단하지 않고 코드에 문제가있을 수 있음을 알 수 있습니다.

  • PDO :: Errmode_Exception : 생산 환경에 적합합니다. 특히 데이터베이스 작업의 모든 오류가 올바르게 처리되도록하려는 경우. 예외 처리를 통해 개발자는 오류 유형을 기반으로 유연한 응답을 만들 수 있으며 후속 분석을 위해 자세한 오류 정보를 기록 할 수 있습니다.

4. 요약

pdo :: attattribute 메소드 별로 pdo :: attr_errmode를 설정함으로써 PDO의 오류 처리 방법을 유연하게 제어 할 수 있습니다. 적절한 오류 처리 모드를 선택하면 응용 프로그램의 안정성이 향상 될뿐만 아니라 개발자가 코드를 더 잘 디버그하고 최적화하는 데 도움이 될 수 있습니다. 조용한 오류 처리 모드를 선택하든 예외를 던져서 미세한 오류 처리를 수행하든 PDO는 좋은 지원을 제공합니다.

  • 관련 태그:

    PDO