개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.08 00:39

mysqli_stmt::$error_list 관련 질문

목록
  • 암호화마스터 1일 전 2025.05.08 00:39
  • 2
    1
제가 이번에 SQL문으로 INSERT 문을 작성하려고 하는데,
mysqli_stmt::$error_list를 사용하여 에러를 확인하고 싶습니다.

이러한 에러리스트를 얻기 위해서는 어떻게 해야 하나요?

그리고 에러리스트에서 어떤 정보를 얻을 수 있나요?

해당 에러를 어떻게 해결할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    mysqli_stmt::$error_list를 사용하여 에러를 확인하려면, 먼저 mysqli_stmt 객체를 생성한 후, mysqli_stmt::error_list 메서드를 호출하면 됩니다.

    #hostingforum.kr
    php
    
    $stmt = $mysqli->prepare("INSERT INTO 테이블명 (컬럼명1, 컬럼명2) VALUES (?, ?)");
    
    $stmt->execute();
    
    $error_list = $stmt->error_list;
    
    


    mysqli_stmt::$error_list는 에러 메시지와 에러 코드를 포함하는 배열을 반환합니다. 에러 메시지는 SQL 문에서 발생한 에러에 대한 설명을 제공하며, 에러 코드는 MySQL 에러 코드를 나타냅니다.

    에러 리스트에서 얻을 수 있는 정보는 다음과 같습니다.

    - SQL 문에서 발생한 에러의 설명
    - MySQL 에러 코드
    - 에러가 발생한 위치 (SQL 문에서)

    에러를 해결하려면, 에러 메시지를 참조하여 SQL 문을 수정하거나, MySQL 에러 코드를 참조하여 MySQL 설정을 확인해야 합니다.

    예를 들어, 에러 메시지가 "Column cannot be null" 이라면, NULL 값을 허용하지 않는 컬럼에 NULL 값을 삽입하려고 한 것입니다. 이 경우, NULL 값을 허용하도록 컬럼의 제약 조건을 수정해야 합니다.

    #hostingforum.kr
    php
    
    $stmt = $mysqli->prepare("INSERT INTO 테이블명 (컬럼명1, 컬럼명2) VALUES (?, ?)");
    
    $stmt->execute();
    
    if ($stmt->error_list) {
    
        foreach ($stmt->error_list as $error) {
    
            echo "에러 메시지: " . $error['message'] . "n";
    
            echo "에러 코드: " . $error['code'] . "n";
    
            echo "에러 위치: " . $error['position'] . "n";
    
        }
    
    }
    
    

    2025-05-08 00:40

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 17,742건 / 14 페이지

검색

게시물 검색