현재 위치: > 최신 기사 목록> mysqli_stmt :: $ error를 사용하여 데이터베이스 오류 어설 션을 작성하십시오

mysqli_stmt :: $ error를 사용하여 데이터베이스 오류 어설 션을 작성하십시오

gitbox 2025-05-28

데이터베이스 작업은 특히 MySQL 데이터베이스와 상호 작용할 때 PHP 응용 프로그램 개발의 불가피한 부분입니다. 데이터를 삽입, 업데이트, 삭제 또는 데이터 쿼리에 관계없이 모든 단계의 오류로 인해 응용 프로그램 실패 또는 데이터 불일치가 발생할 수 있습니다. 데이터베이스 작업의 원활한 실행을 보장하려면 효과적인 오류 처리 메커니즘이 필요합니다.

MySQLI_STMT :: $ ERROR 는 PHP MySQLI Extension에서 제공하는 매우 유용한 속성으로, 마지막 데이터베이스 작업에서 발생한 오류 정보를 얻을 수 있습니다. 이 기사에서는 MySQLI_STMT :: $ 오류를 사용하여 데이터베이스 오류 어시스트를 작성하고 데이터베이스 작업의 오류를 효과적으로 처리하는 방법에 대해 논의합니다.

1. 데이터베이스에 연결하십시오

데이터베이스 작업을 시작하기 전에 먼저 MySQLI를 통해 MySQL 데이터베이스에 연결해야합니다. mysqli_connect () 또는 객체 지향 메소드를 통해 연결할 수 있습니다.

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test_db';

// 객체 지향적 접근법을 사용하여 연결을 만듭니다
$mysqli = new mysqli($host, $user, $password, $database);

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

2. MySQLI_STMT를 사용하여 SQL 쿼리를 실행하십시오

데이터베이스에 성공적으로 연결하면 다음 단계는 SQL 쿼리를 준비하는 것입니다. 효과적인 오류 처리를 위해서는 준비된 명령문을 사용하는 것이 좋습니다. 전처리 명세서는 SQL 주입을 방지 할뿐만 아니라 쿼리 효율을 향상시킵니다.

다음은 mysqli_stmt를 사용하여 SQL 쿼리를 실행하고 가능한 오류를 처리하는 방법입니다.

 <?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

// 전처리 진술을 사용하십시오
$stmt = $mysqli->prepare($sql);

if ($stmt === false) {
    die("전처리 명세서 오류: " . $mysqli->error);
}

// 바인딩 매개 변수
$username = 'john_doe';
$email = '[email protected]';
$stmt->bind_param('ss', $username, $email);

// 실행 진술
$stmt->execute();

// 실행 결과를 확인하십시오
if ($stmt->error) {
    die("실행 오류: " . $stmt->error);
} else {
    echo "데이터 삽입이 성공적으로 삽입됩니다!";
}
?>

3. 오류 어설 션 및 예외 처리

개발 중에 오류 어설 션은 매우 중요하며 문제를 신속하게 찾아 해결하는 데 도움이됩니다. mysqli_stmt :: $ 오류를 결합하여 오류 어설 션을 만들 수 있습니다. 데이터베이스 작업이 실패하면 프로그램을 즉시 중지하고 특정 오류 정보를 출력하십시오.

 <?php
function assertQuerySuccess($stmt) {
    if ($stmt->error) {
        throw new Exception("데이터베이스 작업이 실패했습니다: " . $stmt->error);
    }
}

try {
    $sql = "INSERT INTO users (username, email) VALUES (?, ?)";
    $stmt = $mysqli->prepare($sql);
    assertQuerySuccess($stmt); // 오류가있는 경우,예외를 던지십시오

    $username = 'jane_doe';
    $email = '[email protected]';
    $stmt->bind_param('ss', $username, $email);
    $stmt->execute();

    assertQuerySuccess($stmt); // 再次실행 결과를 확인하십시오
    echo "데이터 삽입이 성공적으로 삽입됩니다!";
} catch (Exception $e) {
    echo "실수: " . $e->getMessage();
}
?>

위 코드에서 AssertQuerySuccess () 함수는 데이터베이스 작업이 성공했는지 확인합니다. 작업이 실패하면 예외가 발생하여 필요한 경우 그에 따라 처리하고 처리 할 수 ​​있습니다.

4. 다른 오류 유형을 처리합니다

때로는 데이터베이스 작업이 실패하는 데 여러 가지 이유가있을 수 있습니다. 예를 들어 SQL 구문 오류, 데이터베이스 연결 문제 또는 서버 오류 일 수 있습니다. mysqli_stmt :: $ 오류 속성에서 오류 메시지를 확인하면 다른 오류 유형을 기반으로 해당 측정 값을 사용할 수 있습니다.

 <?php
if ($stmt->error) {
    // 处理特定的실수
    switch ($stmt->errno) {
        case 1062:
            echo "실수:중복 항목!";
            break;
        case 1049:
            echo "실수:알 수없는 데이터베이스!";
            break;
        default:
            echo "数据库실수: " . $stmt->error;
    }
}
?>

5. 요약

데이터베이스 오류 처리에 MySQLI_STMT :: $ 오류를 사용하면 문제를 찾는 데 효과적으로 문제를 해결하고 응용 프로그램이 빠르게 응답하고 데이터베이스 작업이 실패 할 때 적절한 조치를 취할 수 있는지 확인할 수 있습니다. 좋은 오류 어설 션 및 예외 처리 메커니즘을 통해 프로그램의 견고성과 유지 가능성이 크게 향상되었습니다.

이 기사에서는 오류 어설 션에 mysqli_stmt :: $ 오류를 사용하는 방법, 데이터베이스 작업에서 일반적인 오류를 처리하는 방법, 예외 처리를 통해 코드의 견고성을 더욱 향상시키는 방법을 설명합니다. 이 기사가 PHP 프로젝트에서 데이터베이스 관련 오류를 더 잘 처리하는 데 도움이되기를 바랍니다.