PHP에서 MySQLI Extension은 MySQL 데이터베이스 연결 및 쿼리를 처리하는 일반적인 도구입니다. MySQL 확장과 달리 MySQLI는 더 많은 기능과 유연성을 제공하고 객체 지향 프로그래밍을 지원합니다. 데이터베이스 작업에 MySQLI를 사용하는 경우 프로그램을 디버깅하거나 사용자에게 유용한 프롬프트를 표시하기 위해 오류 메시지를 캡처해야 할 수도 있습니다. PHP는 두 가지 속성을 제공합니다 . mysqli :: $ errno 및 mysqli :: $ 오류는 개발자가 오류 정보를 얻을 수 있도록 도와 주지만 약간의 차이가 있으며 다른 시나리오에 적합합니다. 이 기사에서는 깊이있는 차이를 분석하고 오류 정보를 포착하는 데 더 적합한 속성에 대해 논의합니다.
mysqli :: $ errno : 마지막 데이터베이스 작업 중에 발생한 오류 코드 (정수 양식)를 반환합니다. 오류가 발생하지 않으면 0을 반환하십시오. 이 오류 코드는 MySQL 데이터베이스에서 정의 된 숫자이며 다른 유형의 오류를 나타내는 데 사용됩니다.
mysqli :: $ error : 마지막 데이터베이스 작업 중에 발생한 오류 메시지 (문자열 양식)를 반환합니다. 오류가 발생하지 않으면 빈 문자열이 반환됩니다. 이 오류 메시지는 일반적으로 개발자가 진행중인 작업을 이해하도록 돕기 위해 MySQL이 반환 한 자세한 설명입니다.
오류 유형 :
mysqli :: $ errno는 오류 코드 (적분)를 반환하고 mysqli :: $ 오류는 오류를 설명하는 문자열 (텍스트)을 반환합니다. 즉, MySQLI :: $ errno는 프로그램의 오류 분류 및 오류 코드를 기반으로 한 다른 처리와 같은 오류 분류 및 판단에 적합하지만 MySQLI :: $ 오류는 손쉬운 디버깅을위한 상세한 오류 정보를 제공하는 데 더 적합합니다.
오류 내용 :
오류 코드는 MySQL에서 내부적으로 정의되며 각 오류 코드는 특정 유형의 오류에 해당합니다. 예를 들어, 1062는 데이터를 삽입 할 때 고유 한 제약이 위반되었음을 의미합니다. 오류 메시지는 "주요 '기본'에 대한 중복 항목"과 같이 더 직관적입니다. 오류의 특정 원인을 설명합니다. 개발자는 일반적으로 오류 코드를 확인하여 문제 카테고리를 먼저 결정한 다음 오류 메시지를 기반으로 디버그합니다.
성능 차이 :
오류 코드 ( mysqli :: $ errno )를 얻는 것은 간단한 정수 값이기 때문에 비교적 가볍습니다. 오류 메시지 ( mysqli :: $ error )를 얻으려면 문자열을 반환해야합니다.이 경우에는 특히 빈번한 데이터베이스 작업을 수행 할 때 성능에 약간 영향을 줄 수 있습니다.
mysqli :: $ errno 사용 :
오류가 발생했는지 여부와 오류 코드를 기반으로 특정 처리를 수행 해야하는 경우에만 관심이있는 경우 (예 : 오류 코드가 1045 인 경우 데이터베이스 연결 권한이 충분하지 않음) MySQLI :: $ errno가 더 적합합니다. 오류 범주를 판단하는 간단하고 명확한 방법을 제공합니다.
mysqli :: $ 오류 사용 :
자세한 오류 정보를 얻거나 디버깅을위한 도구를 개발하는 경우 MySQLI :: $ 오류가 더 나은 선택입니다. 오류 메시지는 MySQL이 반환 한 특정 문제 설명을 제공하여 문제를 더 빨리 찾는 데 도움이됩니다.
다음은 mysqli :: $ errno 및 mysqli :: $ 오류를 사용하여 오류 메시지를 캡처하는 방법을 보여주는 간단한 예입니다.
<?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli("localhost", "username", "password", "database");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_errno) {
echo "연결이 실패했습니다: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
exit();
}
// 쿼리를 실행하십시오
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
// 사용 mysqli::$errno 오류 코드를 가져옵니다
echo "오류 코드: " . $mysqli->errno . "\n";
// 사용 mysqli::$error 오류 메시지를 받으십시오
echo "오류 메시지: " . $mysqli->error . "\n";
}
$mysqli->close();
?>
이 예에서 쿼리 실행이 실패하면 mysqli :: $ errno를 통해 오류 코드를 가져오고 mysqli :: $ error 를 통해 자세한 오류 정보를 얻을 수 있습니다.
mysqli :: $ errno는 오류 분류 및 처리에 적합한 정수 유형 오류 코드를 반환합니다.
mysqli :: $ 오류는 문자열 유형 오류 메시지를 반환하여 특정 오류 설명을 디버깅하고 표시하는 데 적합합니다.
오류 정보를 포착하려면 오류 코드를 기반으로 다른 처리를 수행 해야하는 경우 MySQLI :: $ errno를 사용하는 것이 더 나은 선택입니다. 특정 오류 설명을 디버그하고보아야하는 경우 MySQLI :: $ 오류를 사용하는 것이 더 적절합니다.