PHP 애플리케이션을 개발할 때, 특히 데이터베이스 상호 작용과 관련된 작업과 관련하여 프로그램 오류 처리가 중요합니다. 오류 처리 메커니즘은 코드를 디버그하고 최적화하는 데 도움이 될뿐만 아니라 프로그램의 안정성과 사용자 경험을 향상시킬 수 있습니다. PHP는 mysqli :: $ errno 및 trigger_error () 가 매우 유용한 도구 인 오류를 처리하는 여러 가지 방법을 제공합니다.
이 기사에서는 MySQLI :: $ errno 및 trigger_error ()를 사용하여 PHP 오류 인터럽트 메커니즘을 구현하여 데이터베이스 또는 기타 심각한 오류가 발생할 때 프로그램을 시간에 종료하고 명확한 오류 정보를 제공하는 방법에 대해 논의합니다.
mysqli :: $ errno : 이것은 최신 데이터베이스 작동에 대한 오류 코드를 저장하는 MySQLI 클래스의 속성입니다. 데이터베이스 작업을 수행 할 때 오류가 발생하면 MySQLI :: $ errno를 통해 상세 오류 코드를 얻을 수있어 오류 유형을 결정하는 데 도움이됩니다.
trigger_error () : 사용자 수준 오류를 트리거하는 PHP 내장 기능입니다. 특정 상황에서 오류 메시지를 던지고 오류 수준 (예 : 경고, 알림 또는 치명적인 오류)을 제어 할 수 있습니다.
우수한 오류 처리 메커니즘이 없으면 데이터베이스 오류 또는 기타 예외가 발생하면 PHP 프로그램이 계속 실행될 수있어 예측할 수없는 동작이 발생하고 심지어 심각한 오류가 발생할 수 있습니다. 예를 들어, 데이터베이스 쿼리를 실행할 때 오류가 발생하면 (예 : 데이터베이스에 연결하지 않거나 쿼리 실패) 프로그램이 정시에 중단되지 않으면 후속 코드가 계속 실행되어 데이터 손상 또는 불일치가 발생할 수 있습니다.
따라서 MySqli :: $ errno 및 trigger_error ()를 사용하면 코드의 안정성을 보장하기 위해 오류가 발생할 때 이러한 문제를 효과적으로 방지하고 프로그램 실행을 종료 할 수 있습니다.
mysqli :: $ errno 및 trigger_error ()를 사용하여 간단한 오류 인터럽트 메커니즘을 구현하는 방법을 살펴 보겠습니다.
먼저 데이터베이스 연결을 설정하고 성공 여부를 확인해야합니다. 연결이 실패하면 Trigger_Error ()를 사용하여 치명적인 오류를 트리거하고 프로그램 실행을 중단 할 수 있습니다.
<?php
// 데이터베이스 연결 구성
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test';
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli($host, $username, $password, $dbname);
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_errno) {
// 연결이 실패했습니다,치명적인 오류를 유발하고 프로그램을 방해하십시오
trigger_error("数据库연결이 실패했습니다: " . $mysqli->connect_error, E_USER_ERROR);
}
?>
위 코드에서 데이터베이스 연결이 실패하면 $ mysqli-> connect_errno는 0이 아닌 오류 코드를 반환하고 trigger_error () 가 트리거되고 오류 메시지를 출력하고 프로그램 실행을 종료합니다.
데이터베이스에 연결할 때 오류 확인 외에도 SQL 쿼리를 실행할 때 유사한 오류 처리가 필요합니다. mysqli :: $ errno를 통해 쿼리의 오류 코드를 얻을 수 있습니다. 쿼리가 실패하면 trigger_error ()를 사용하여 프로그램을 방해하고 오류를보고 할 수 있습니다.
<?php
// 쿼리를 실행하십시오
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
// 쿼리가 성공했는지 확인하십시오
if ($mysqli->errno) {
// 쿼리가 실패했습니다,오류를 트리거하고 프로그램을 방해합니다
trigger_error("SQL 쿼리가 실패했습니다: " . $mysqli->error, E_USER_ERROR);
}
?>
이 예에서 SQL 쿼리가 실행되지 않으면 $ mysqli-> errno가 오류 코드를 반환하면 trigger_error ()가 호출되고 오류 메시지가 출력됩니다. 이를 통해 쿼리에 문제가있는 경우 프로그램이 제 시간에 종료되고 유효하지 않은 코드의 추가 실행을 피할 수 있습니다.
trigger_error ()를 사용하면 오류 레벨을 설정할 수 있습니다. 예를 들어, 경고 ( E_USER_WARNING )로 일부 오류를 처리하고 치명적인 오류 ( E_USER_ERROR )와 같은 중요한 오류 (예 : 데이터베이스 연결 고장)를 처리 할 수 있습니다. 이런 식으로 개발자는 오류를 처리하는 방법을 유연하게 제어 할 수 있습니다.
<?php
// 쿼리가 빈 결과 세트를 반환한다고 가정합니다
if ($result->num_rows === 0) {
// 트리거 경고,그러나 절차는 종료되지 않습니다
trigger_error("경고하다: 쿼리 결과는 비어 있습니다", E_USER_WARNING);
} else {
// 프로세스 쿼리 결과
while ($row = $result->fetch_assoc()) {
echo $row['username'];
}
}
?>
이 예에서 쿼리가 빈 결과 세트를 반환하면 trigger_error () 를 통해 경고를 트리거하지만 프로그램은 인터럽트하지 않지만 계속 실행됩니다. 이 접근법은 절차를 즉시 종료 할 필요가없는 상황에 적합합니다.
mysqli :: $ errno 및 trigger_error ()를 활용함으로써 심각한 오류가 발생할 때 PHP 응용 프로그램을 종료하고 오류가 확산되는 것을 방지하며 코드 안정성을 향상시킬 수 있도록 효과적인 오류 인터럽트 메커니즘을 구축 할 수 있습니다. trigger_error () 로 다른 오류 레벨을 유연하게 설정하면 문제가 발생할 때 프로그램이 명확한 오류 정보를 제공 할 수 있도록 오류를 처리하는 방법을 제어 할 수도 있습니다.
실제 개발에서 우수한 오류 처리는 개발자가 문제를 신속하게 찾는 데 도움이 될뿐만 아니라 비정상이 발생할 때 예상되는 행동을 보여주고 사용자 경험과 코드 견고성을 향상시킬 수 있도록 보장 할 수 있습니다.