현재 위치: > 최신 기사 목록> 업데이트 작업이 실패 할 때 MySQLI_STMT :: $ 오류 사용의 예

업데이트 작업이 실패 할 때 MySQLI_STMT :: $ 오류 사용의 예

gitbox 2025-05-29

PHP 응용 프로그램을 개발할 때 MySQLI 확장은 일반적으로 데이터베이스 작업에 사용되며 그 중 업데이트 작업은 매우 일반적입니다. 작업의 원활한 실행을 보장하려면 가능한 오류와 디버그를 포착 할 수 있어야합니다. mysqli_stmt :: $ 오류는 오류를 포착하는 일반적인 방법으로 업데이트 작업을 수행 할 때 상세한 오류 정보를 얻는 데 도움이됩니다. 이 기사는 PHP에서 MySQLI_STMT :: $ 오류를 사용하여 업데이트 작업 실패 오류를 캡처하고 정보를 디버깅하여 문제를 해결하는 방법을 소개합니다.

1. 데이터베이스를 준비하고 작업을 업데이트하십시오

먼저 MySQL 데이터베이스에 연결되어 업데이트 작업을 수행 할 준비가되었다고 가정 해 봅시다. 다음은 업데이트 작업의 간단한 예입니다.

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);

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

// 사용자 테이블에서 사용자 이름을 업데이트하고 싶다고 가정합니다.
$sql = "UPDATE users SET username = ? WHERE id = ?";
$stmt = $conn->prepare($sql);

// 이것이 우리가 바인딩하려는 매개 변수라고 가정하십시오
$new_username = "new_user";
$user_id = 1;

// 바인딩 매개 변수
$stmt->bind_param("si", $new_username, $user_id);

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

// 오류를 확인하십시오
if ($stmt->error) {
    echo "업데이트가 실패했습니다: " . $stmt->error;
} else {
    echo "성공적으로 업데이트하십시오";
}

$stmt->close();
$conn->close();
?>

2. 코드를 설명하십시오

  1. 데이터베이스 <br>에 연결하십시오 우리는 새로운 mysqli ()를 사용하여 MySQL 데이터베이스에 연결합니다. 연결이 실패하면 프로그램에 오류 메시지가 표시됩니다.

  2. 업데이트 문 <br> 준비 사용자 테이블에서 사용자 이름 필드를 업데이트하는 데 사용되는 업데이트 쿼리를 만듭니다. 우리는 쿼리를 준비합니까 ? 자리 표시기는 BIND_PARAM () 메소드를 통해 실제 값을 바인딩 할 수 있습니다.

  3. 바인드 매개 변수 <br> bind_param () 메소드를 사용하여 매개 변수를 바인딩하십시오. 첫 번째 매개 변수는 바운드 유형의 문자열이고 Si는 첫 번째 매개 변수가 문자열 유형이고 두 번째 매개 변수는 정수 유형임을 의미합니다.

  4. 실행 진술
    Execute () 메소드는 준비된 SQL 문을 실행하는 데 사용됩니다. 실행이 실패하면 $ stmt-> 오류를 통해 오류 메시지가 나타납니다.

3. 오류를 잡고 디버그

SQL 문을 실행할 때 $ stmt-> 오류 속성은 실행 실패 오류를 포착 할 수 있습니다. 업데이트 작업이 실패하면 $ stmt-> 오류가 자세한 오류 정보를 반환하며, 이는 우리가 디버깅 할 수 있습니다.

 if ($stmt->error) {
    echo "업데이트가 실패했습니다: " . $stmt->error;
} else {
    echo "성공적으로 업데이트하십시오";
}

샘플 출력 :

데이터베이스 테이블에 ID 1이있는 사용자가없는 경우 업데이트 작업을 수행 할 때 오류가 발생할 수 있으며 오류 메시지는 다음과 같습니다.

 업데이트가 실패했습니다: You have an error in your SQL syntax

이 오류 메시지는 SQL 구문 오류, 필드 이름 오류 또는 기타 데이터베이스 관련 문제 일 수있는 문제를 찾는 데 도움이됩니다.

4. 일반적인 오류 및 디버깅

  1. SQL 구문 오류 <br> SQL 문에 구문 오류가 있으면 $ stmt-> 오류가 "SQL 구문에 오류가 있습니다"와 유사한 정보를 반환합니다. 최종 SQL 쿼리를 인쇄하여 확인할 수 있습니다.

     echo "SQL 질문: " . $sql;
    

    SQL 쿼리를 인쇄하면 데이터베이스에서 수신 한 SQL 문을 직접 확인하여 구문 오류를 찾아 수정할 수 있습니다.

  2. 매개 변수 바인딩 문제 <br> bind_param () 에 바인딩 된 유형이 실제로 전달 된 매개 변수의 유형과 일치하지 않으면 오류가 발생할 수 있습니다. 예를 들어, 문자열이 정수 유형이 필요한 인수로 전달되면 $ stmt-> 오류가 관련 오류 메시지를 반환합니다.

  3. 데이터베이스 연결 문제 <br> 데이터베이스 연결이 성공하지 못한 경우 $ conn-> connect_error는 연결 고장의 오류 메시지를 반환합니다. 현재 데이터베이스 호스트, 사용자 이름, 비밀번호 등과 같은 구성 정보를 확인해야합니다.

5. 요약

mysqli_stmt :: $ 오류를 사용하면 업데이트 작업에서 오류를 효과적으로 포착하고 디버깅 할 수 있습니다. 키는 오류 속성을 통해 자세한 오류 정보를 얻고이 정보를 기반으로 추가 디버그를 얻는 것입니다. 개발 과정에서 캐치 오류는 애플리케이션 안정성과 디버깅 효율을 보장하는 중요한 수단입니다.

이 기사가 MySQLI_STMT :: $ 오류를 사용하여 업데이트 작업 실패 오류 및 디버그를 작성하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 사용 중에 문제가 발생하면 공식 문서에 문의하거나 디버깅을 계속하십시오.