현재 위치: > 최신 기사 목록> $ errno 연결 오류에 대해서만 확인합니까? 오해는 문제 해결으로 이어집니다

$ errno 연결 오류에 대해서만 확인합니까? 오해는 문제 해결으로 이어집니다

M66 2025-05-31

PHP 응용 프로그램을 개발할 때는 종종 데이터베이스와 상호 작용합니다. MySQLI 확장자를 사용하는 경우 MySQLI :: $ errnomySQLI :: $ 오류는 데이터베이스 오류를 포착하는 데 매우 일반적이며 중요한 도구입니다. 그러나 많은 개발자들은 mysqli :: $ errno 의 목적을 오해하고 단순히 데이터베이스 연결 오류를 확인하는 도구로 간주 할 수 있습니다. 이러한 오해는 특히 오류가 발생할 때 문제 해결을보다 복잡하게 만들 수 있습니다. 이 기사는 일반적인 오해를 피하기 위해 mysqli :: $ errno를 올바르게 사용하는 방법을 자세히 분석합니다.

1. mysqli :: $ errno 의 기본 역할

mysqli :: $ errno는 이전 MySQL 작업의 오류 코드를 저장하는 데 사용되는 MySQLI 객체의 속성입니다. 이전 작업이 성공적으로 실행되면 MySQLI :: $ errno 의 값은 0이 됩니다. 그렇지 않으면 0이 아닌 오류 코드를 반환합니다.

MySQLI :: $ Errno는 데이터베이스 연결 오류뿐만 아니라 MySQLI를 통해 수행되는 모든 SQL 쿼리 작업에도 적합하다는 점에 유의해야합니다.

샘플 코드 :

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

// 연결을 확인하십시오
if ($mysqli->connect_errno) {
    echo "연결이 실패했습니다: " . $mysqli->connect_error;
    exit();
}

// 쿼리를 실행하십시오
$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);

// 쿼리가 성공했는지 확인하십시오
if (!$result) {
    echo "쿼리 오류: " . $mysqli->error;
    echo "오류 코드: " . $mysqli->errno; // 오류 코드를 가져옵니다
}

$mysqli->close();
?>

이 코드에서는 mysqli :: $ errno가 쿼리 오류에 대한 오류 코드 (존재하는 경우)에 대한 오류 코드를 반환하고 mysqli :: $ 오류는 오류에 대한 자세한 정보를 제공합니다.

2. MySQLI :: $ errno 오해는 연결 오류에만 사용됩니다

MySQLI :: $ errno가 데이터베이스 연결시 오류를 확인하는 데만 사용된다고 잘못 믿는 많은 개발자가 있습니다. mysqli :: $ errno를 오해하면 다른 문제를 해결할 때 중요한 오류 정보가 누락 될 수 있습니다. 실제로 MySQLI :: $ errno는 쿼리 오류, 업데이트 오류 및 트랜잭션 커밋 실패 등을 확인하는 데 사용될 수 있습니다.

전형적인 오해 :

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

// 잘못된 가정:只연결을 확인하십시오실수
if ($mysqli->connect_errno) {
    echo "연결이 실패했습니다: " . $mysqli->connect_error;
    exit();
}

// 잘못된 방법:다른 사람을 확인하지 마십시오 SQL 실수
$query = "SELECT * FROM non_existing_table";
$mysqli->query($query);

// 此处没有쿼리가 성공했는지 확인하십시오,可能错过了쿼리 오류
$mysqli->close();
?>

위의 코드에서 개발자는 실수로 연결 오류에주의를 기울여야한다고 믿고 쿼리 오류 확인을 무시합니다. 그렇게하면 쿼리가 실행될 때 데이터베이스의 다른 문제가 잡을 수 없게됩니다.

3. 오류 쿼리를 위해 mysqli :: $ errno를 올바르게 사용하는 방법

위의 오해를 피하기 위해 연결 작업, 쿼리, 업데이트, 삭제 및 기타 데이터베이스 작업이든 각 데이터베이스 작업을 수행 한 후 MySQLI :: $ errno를 확인해야합니다. 이런 식으로 만 잠재적 인 데이터베이스 문제를 더 일찍 발견 할 수 있습니다.

그것을하는 올바른 방법 :

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

// 연결을 확인하십시오실수
if ($mysqli->connect_errno) {
    echo "연결이 실패했습니다: " . $mysqli->connect_error;
    exit();
}

// 쿼리를 실행하십시오
$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);

// 쿼리가 성공했는지 확인하십시오
if (!$result) {
    echo "쿼리 오류: " . $mysqli->error;
    echo "오류 코드: " . $mysqli->errno; // 获取쿼리 오류码
}

$mysqli->close();
?>

위의 코드에서는 데이터베이스 연결 오류를 확인할뿐만 아니라 쿼리 후 가능한 쿼리 오류를 확인합니다. 이렇게하면 모든 링크의 문제를 캡처하여 문제를보다 효율적으로 포지셔닝하고 해결할 수 있습니다.

4. 일반적인 mysqli :: $ errno 오류 코드 및 의미

mysqli :: $ errno 에서 더 명확하게 반환 한 오류 코드를 이해하려면 MySQL 오류 코드 문서를 참조 할 수 있습니다. 다음은 몇 가지 일반적인 오류 코드 예제입니다.

  • 1045 : "사용자의 액세스 거부" - 사용자 이름 또는 비밀번호 오류

  • 1146 : "테이블이 존재하지 않습니다" - 테이블이 존재하지 않습니다.

  • 1064 : "SQL 구문에 오류가 있습니다" - SQL 구문 오류

이러한 오류 코드를 이해하면 오류 정보를 더 잘 해석하고 문제를 신속하게 찾을 수 있습니다.

5. mysqli :: $ errnomysqli :: $ 오류 사용 문제 해결 문제

mysqli :: $ errno는 주로 오류 코드를 제공하는 데 사용되며 mysqli :: $ 오류는 자세한 오류 설명을 반환합니다. 실제로 문제를 해결하는 경우 일반적으로 데이터베이스 작동 실패 이유를 완전히 이해하기 위해이 두 가지 속성을 사용해야합니다.

샘플 코드 :

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

if ($mysqli->connect_errno) {
    echo "연결이 실패했습니다: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);

if (!$result) {
    echo "쿼리가 실패했습니다: " . $mysqli->error . "<br>";
    echo "오류 코드: " . $mysqli->errno;
}

$mysqli->close();
?>

오류 정보 및 오류 코드를 동시에 출력하면 문제의 근본 원인을 명확하게 이해하고이를 해결하기 위해 해당 조치를 취할 수 있습니다.

요약

mysqli :: $ errno는 PHP에서 매우 중요한 속성입니다. 데이터베이스 연결 오류를 확인하는 데 사용될뿐만 아니라 모든 MySQL 작업에서 더 널리 사용됩니다. 오해로 인한 문제 해결을 피하기 위해 각 데이터베이스 작업 후에 MySQLI :: $ errno를 확인하여 잠재적 오류가 제 시간에 잡힐 수 있는지 확인해야합니다. MySQLI :: $ Errno 의 정확한 이해와 사용을 통해 개발 프로세스 중에 문제를보다 효율적으로 문제 해결하고 버그 발생을 줄일 수 있습니다.