현재 위치: > 최신 기사 목록> mysqli :: $ errno를 통해 mysqli_stmt_execute () 오류의 원인을 빠르게 찾는 방법?

mysqli :: $ errno를 통해 mysqli_stmt_execute () 오류의 원인을 빠르게 찾는 방법?

M66 2025-06-23

데이터베이스 작업에 PHP의 MySQLI 확장 기능을 사용하는 경우 데이터베이스 쿼리를 실행할 때 오류가 발생하는 것이 불가피합니다. 특히 MySQLI_STMT_EXECUTE ()를 사용하여 전처리 문을 실행할 때, 때로는 오류 메시지가 오류의 특정 원인을 직접 설명하지 않습니다. 현재 MySqli :: $ errno 속성을 사용하여 오류를 찾는 데 도움이됩니다.

1. mysqli :: $ errno 란 무엇입니까?

mysqli :: $ errno는 PHP의 MySQLI Extension의 속성으로, 마지막 MySQL 작업에서 발생한 오류 코드를 나타냅니다. mysqli_stmt_execute ()를 실행할 때 오류가 발생하면 mysqli :: $ errno 를 통해 자세한 오류 코드를 얻을 수 있으므로 개발자가 문제를 신속하게 찾을 수 있습니다.

mysqli :: $ errnomysqli :: $ error는 mysql 데이터베이스 작업의 예외를 더 잘 이해하는 데 도움이 될 수 있습니다.

2. mysqli_stmt_execute () 오류의 일반적인 이유

오류의 일반적인 원인에는 다음이 포함될 수 있습니다.

  • SQL 문의 구문 오류.

  • 불일치 한 데이터 유형의 바인딩과 같은 파라미터 바인딩 오류.

  • 데이터베이스 연결 문제.

  • 데이터베이스 액세스 권한이 충분하지 않습니다.

이러한 오류는 때때로 반환 된 부울 값 또는 mysqli :: $ 오류 에 의해 유발되지만 문제를 정확히 찾아서 mysqli :: $ errno를 결합하여 오류의 오류 코드를 얻을 수 있습니다.

3. mysqli :: $ errno를 사용하여 오류를 찾는 방법은 무엇입니까?

mysqli_stmt_execute () 가 반환 한 부울 값을 사용하여 실행이 성공했는지 판단 할 수 있습니다. False가 반환되면 실행이 실패했음을 의미합니다. 현재 MySqli :: $ errnomysqli :: $ 오류를 통해 자세한 오류 정보를 얻을 수 있습니다.

샘플 코드 :

 <?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli("localhost", "username", "password", "database");

// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 준비하다 SQL 성명
$stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");

// 바인딩 매개 변수
$username = 'testuser';
$email = 'testuser@m66.net';
$stmt->bind_param("ss", $username, $email);

// 执行성명
if (!$stmt->execute()) {
    echo "오류 코드: " . $stmt->errno . "<br>";
    echo "오류 메시지: " . $stmt->error . "<br>";
} else {
    echo "성공적으로 삽입하십시오!<br>";
}

// 关闭성명和连接
$stmt->close();
$mysqli->close();
?>

코드 분석 :

  1. 데이터베이스 연결 : 먼저 New MySQLI ()를 통해 데이터베이스 연결을 생성하고 연결이 성공했는지 확인합니다.

  2. 준비 SQL 문 : repary () 메소드를 사용하여 사용자 데이터를 삽입하기 위해 SQL 삽입 문을 준비합니다.

  3. 바인드 매개 변수 : BIND_PARAM () 메소드를 통해 삽입 된 매개 변수를 바인딩하여 올바른 데이터 유형을 보장합니다.

  4. 명령문을 실행하고 오류를 확인하십시오 : mysqli_stmt_execute () 메소드를 실행할 때 False가 반환되면 실행 오류가 발생했음을 의미합니다. $ stmt-> errno를 통해 오류 코드와 $ stmt-> 오류 를 통해 오류 설명을 얻을 수 있습니다.

    위 코드에서 실행 중 오류가 있으면 오류 코드 및 오류 메시지를 출력하여 문제를 신속하게 찾을 수 있습니다.

  5. 연결 닫기 : 마지막으로 전처리 문과 데이터베이스 연결을 닫습니다.

4. 오류 코드의 일반적인 설명

mysqli :: $ errno 에서 얻은 오류 코드는 MySQL 데이터베이스에서 반환 한 표준 오류 코드입니다. 몇 가지 일반적인 오류 코드는 다음과 같습니다.

  • 1045 : 사용자에 대한 액세스 거부 - 불충분 한 데이터베이스 액세스.

  • 1064 : SQL 구문 -SQL 구문 오류에 오류가 발생합니다 .

  • 1062 : 중복 입력 - 고유 한 제약 조건을 위반하여 중복 데이터를 삽입합니다.

  • 2002 : 로컬 MySQL 서버에 연결할 수 없습니다 - MySQL 서버에 연결할 수 없습니다.

이 오류 코드는 데이터베이스 작동 실패 이유를 명확히하는 데 도움이됩니다.

5. 요약

mysqli :: $ errno 속성을 통해 데이터베이스 작업에서 오류 코드를 신속하게 얻을 수 있으며 MySQLI :: $ 오류 의 오류 정보와 결합하여 문제의 근본 원인을보다 쉽게 ​​찾을 수 있습니다. mysqli_stmt_execute ()에서 오류가 발생하면 먼저 반환 값을 확인하고 오류 코드를 통해 문제를 더 문제로 해결하여 개발 효율성을 향상시키고 디버깅 시간을 줄입니다.