현재 위치: > 최신 기사 목록> mysqli_stmt :: $ error와 mysqli :: errno와 결합 된 사용 기술의 차이

mysqli_stmt :: $ error와 mysqli :: errno와 결합 된 사용 기술의 차이

gitbox 2025-05-19

PHP에서 MySQLI Extension은 MySQL 데이터베이스에서 작동하는 풍부한 기능을 제공합니다. mysqli_stmt :: $ error and mysqli :: errno는 개발자가 데이터베이스 작업의 문제를 포착하고 진단하는 데 도움이되는 오류 처리와 관련된 두 가지 중요한 속성입니다. 이 기사는이 두 속성의 차이점과 디버깅 효율을 향상시키기 위해 조합하여 사용하는 방법을 탐색합니다.

1. mysqli_stmt :: $ 오류 의 역할

mysqli_stmt :: $ error는 현재 전처리 명령문 개체 ( mysqli_stmt )와 관련된 오류 메시지를 얻는 데 사용되는 속성입니다. 이 속성은 전처리 문을 실행할 때 발생하는 오류 메시지가 포함 된 문자열을 반환합니다.

예를 들어, SQL 쿼리를 실행하면 쿼리가 실패하면 mysqli_stmt :: $ error는 mysql 서버의 오류 메시지를 반환합니다.

샘플 코드 :

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// 데이터베이스 연결을 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 준비하다 SQL 성명
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
if (!$stmt) {
    echo "준비하다성명失败: " . $mysqli->error;
    exit;
}

// 매개 변수를 바인딩하고 실행합니다
$id = 1;
$stmt->bind_param("i", $id);
$stmt->execute();

// 실행 결과를 확인하십시오
if ($stmt->error) {
    echo "실행 오류: " . $stmt->error;  // 출력 상세 오류 정보
}
?>

위의 코드에서 $ stmt-> 오류는 SQL 문을 실행할 때 발생하는 오류 메시지를 얻는 데 사용됩니다. 디버깅 및 문제 해결에 매우 유용합니다.

2. mysqli :: errno 의 역할

mysqli :: errno는 마지막 MySQL 작업에 대한 오류 코드를 얻는 데 사용되는 속성입니다. 상세한 오류 정보를 반환하는 $ 오류 속성과 달리 Errno는 정수 값을 반환하여 MySQL 오류의 특정 수를 나타냅니다.

샘플 코드 :

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// 데이터베이스 연결을 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 구현하다 SQL 질문
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
    echo "MySQL 오류 코드: " . $mysqli->errno;  // 输出오류 코드
    echo "MySQL 오류 메시지: " . $mysqli->error;  // 출력 상세 오류 정보
}
?>

이 예에서 쿼리가 실패하면 $ mysqli-> errno는 mySQL 오류 코드를 반환합니다. 예를 들어 1146은 "테이블이 존재하지 않는다"오류를 의미하고 $ mysqli-> 오류는 "table 'database.non_existing_table'의 상세한 오류 메시지를 반환합니다.

3. mysqli_stmt :: $ errormysqli :: errno 의 차이

MySQLI_STMT :: $ ERRORMySQLI :: Errno가 모두 MySQL 오류와 관련이 있지만, 그들 사이에는 몇 가지 중요한 차이점이 있습니다.

  • mysqli_stmt :: $ error는 전처리 문 ( mysqli_stmt )의 오류 메시지이며 mysqli :: errno는 mysql 연결의 오류 코드입니다. mysqli_stmt :: $ error는 일반적으로 개발자에게 출력하는 데 사용되는 오류 메시지 문자열을 제공합니다. mysqli :: errno는 오류 코드를 반환합니다. 오류 코드는 종종 프로그램의 추가 오류 처리 및 진단에 사용됩니다.

  • 다른 행동 범위 : mysqli_stmt :: $ 오류는 mysqli_stmt를 통해 실행 된 SQL 문에만 적용되는 반면, mysqli :: errno는 전체 데이터베이스 연결에 적용 할 수 있으며 모든 유형의 쿼리 및 작업에 적용 할 수 있습니다.

4. 디버깅 효율성을 향상시키기 위해 MySQLI_STMT :: $ ERRORMYSQLI :: ERRNO를 사용하십시오

PHP 데이터베이스 코드를 디버깅 할 때 mysqli_stmt :: $ error 또는 mysqli :: errno 만 사용하면 문제를 찾는 데 도움이 될 수 있지만 두 사람을 함께 사용하면 문제의 근본 원인을 신속하게 찾는 데 도움이됩니다.

  • 디버깅 제안 : 먼저 mysqli :: errno를 확인하여 오류 코드를 얻은 다음 mysqli_stmt :: $ error 또는 mysqli :: 오류를 사용하여 자세한 오류 정보를 얻을 수 있습니다. 이 두 가지를 결합하면 어떤 부분이 잘못되었는지 더 정확하게 결정하고 적절한 조치를 취할 수 있습니다.

결합 된 사용 예제 코드 :

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// 데이터베이스 연결을 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 구현하다 SQL 질문
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
    echo "MySQL 오류 코드: " . $mysqli->errno . "\n";  // 获取오류 코드
    echo "MySQL 오류 메시지: " . $mysqli->error . "\n";  // 获取详细오류 메시지
}
?>

위의 코드에서 먼저 mysqli :: errno를 통해 오류 코드를 가져온 다음 mysqli :: error를 통해 자세한 오류 정보를 가져옵니다. 이러한 조합은 개발자가 문제를 신속하게 진단하는 데 도움이 될 수 있습니다. 특히 오류 코드 및 오류 메시지가 서로 보완 될 때.

5. 요약

  • mysqli_stmt :: $ error는 전처리 문과 관련된 오류 정보를 얻는 데 사용되는 반면 mysqli :: errno는 데이터베이스 연결에 대한 오류 코드를 가져 오는 데 사용됩니다.

  • 각각 다른 오류 메시지 형식을 제공하고, 전자는 문자열을 반환하고 후자는 숫자를 반환합니다.

  • 이 둘을 사용하면 MySQL 작업을보다 효율적으로 디버그하고 문제를 신속하게 발견하고 해결할 수 있습니다.

이 두 가지 속성은 PHP 개발에서 매우 중요한 디버깅 도구입니다. 사용량을 마스터하면 디버깅 효율성을 크게 향상시키고 데이터베이스 작업의 오류를 줄일 수 있습니다.