현재 위치: > 최신 기사 목록> mysqli_stmt :: $ 오류의 기본 사용에 대한 자세한 설명

mysqli_stmt :: $ 오류의 기본 사용에 대한 자세한 설명

gitbox 2025-05-19

개발 과정에서 데이터베이스 상호 작용에서 다양한 오류가 종종 발생하며 이러한 오류를 포착하고 디버깅하는 방법은 개발자가 마스터 해야하는 기술 중 하나입니다. PHP에서 MySQLI Extension은 데이터베이스 쿼리를 실행하고 디버그하는 매우 편리한 방법을 제공합니다. 그 중에서 MySQLI_STMT :: $ 오류는 전처리 문을 실행하는 동안 오류 정보를 얻는 데 도움이되는 매우 유용한 속성입니다.

이 기사에서는 MySQLI 쿼리에서 MySQLI_STMT :: $ 오류를 사용하여 MySQLI 쿼리에서 오류를 모으고 디버그하는 방법을 소개하고 실제 코드 예제를 통해이를 사용하는 방법을 더 잘 이해할 수 있도록 도와줍니다.

mysqli_stmt :: $ error 란 무엇입니까?

mysqli_stmt :: $ error는 mysqli의 mysqli_stmt 클래스의 속성입니다. 사전 처리 문 ( MySQLI_STMT )의 가장 최근 실행에 의해 생성 된 오류 메시지를 반환합니다. 실행 중에 오류가 발생하지 않으면 빈 문자열이 반환됩니다.

데이터베이스 작업에서 특히 복잡한 SQL 쿼리 또는 연결 문제인 경우 오류 메시지를 캡처하는 것이 디버깅에 매우 중요합니다. mysqli_stmt :: $ error는 이러한 오류를 쉽게 잡을 수있는 방법을 제공합니다.

mysqli_stmt :: $ 오류를 사용하는 방법?

  1. 데이터베이스 연결을 설정하십시오

먼저 MySQLI 클래스를 통해 데이터베이스에 연결해야합니다.

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

// 데이터베이스 연결을 만듭니다
$conn = new mysqli($host, $username, $password, $database);

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

다음으로 MySQLI_PREPARE () 함수를 사용하여 SQL 문을 준비하고 명령문이 성공적으로 준비되었는지 확인합니다.

 <?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);

if (!$stmt) {
    die("SQL 진술 준비가 실패했습니다: " . $conn->error);
}
?>
  1. 바인딩 매개 변수

MySQLI에서는 bind_param () 함수를 통해 변수를 SQL 쿼리의 매개 변수에 바인딩 할 수 있습니다. 바운드 매개 변수 유형이 예상 유형과 일치하는지 확인하십시오.

 <?php
$username = 'john_doe';
$email = '[email protected]';

$stmt->bind_param("ss", $username, $email); // 첫 번째 매개 변수 "ss" 두 개의 문자열 유형을 나타내는 매개 변수
?>
  1. 쿼리를 실행하고 오류를 잡습니다

이제 우리는 전처리 진술을 실행할 준비가되었습니다. 쿼리 실행이 실패하면 mysqli_stmt :: $ error 를 통해 자세한 오류 정보를 얻을 수 있습니다.

 <?php
if (!$stmt->execute()) {
    echo "쿼리를 실행하지 못했습니다: " . $stmt->error;
} else {
    echo "데이터 삽입이 성공적으로 삽입됩니다!";
}
?>

mysqli_stmt :: $ 오류로 SQL 쿼리를 디버그합니다

mysqli_stmt :: $ 오류는 디버깅 할 때, 특히 SQL 쿼리가 예상대로 예상되지 않은 경우에 매우 유용합니다. MySQL 데이터베이스에서 오류 메시지를 반환하는 데 도움이 될 수 있습니다. 예를 들어, 구문 오류가 있으면 테이블이 존재하지 않거나 데이터 유형이 일치하지 않으면 MySQLI_STMT :: $ 오류는 자세한 오류 설명을 제공합니다.

예를 들어, 오류 구문이 포함 된 쿼리를 실행한다고 가정합니다.

 <?php
$sql = "INSERT INTO users (username, email) VALUE (?, ?)";
$stmt = $conn->prepare($sql);

if (!$stmt) {
    die("SQL 진술 준비가 실패했습니다: " . $conn->error);
}

$stmt->bind_param("ss", $username, $email);

if (!$stmt->execute()) {
    echo "쿼리를 실행하지 못했습니다: " . $stmt->error;  // 자세한 오류 정보가 여기에 표시됩니다
}
?>

실행 실패시 $ stmt-> 오류는 다음과 유사한 오류 메시지를 반환 할 수 있습니다.

 쿼리를 실행하지 못했습니다: Unknown column 'VALUE' in 'field list'

이것은 우리가 SQL 문에서 잘못된 구문을 사용하고 있으며 올바른 구문은 대신 이어야 함을 보여줍니다.

일반적인 오류 및 디버깅 기술

  1. 구문 오류

    • 오류 프롬프트 : 알 수없는 열 , SQL 구문에 오류가 있습니다 .

    • 해결 방법 : SQL 쿼리의 열 이름, 테이블 이름 및 키워드가 올바르게 철자되는지 확인하십시오.

  2. 데이터 유형 불일치

    • 오류 프롬프트 : 잘못된 정수 값 , 열에 대해 잘린 데이터 .

    • 해결 방법 : 들어오는 매개 변수 유형이 데이터베이스 테이블의 열 유형과 일치하는지 확인하십시오. 예를 들어, 정수가 될 것으로 예상되는 열로 문자열을 전달할 때 유형 불일치 오류가 발생합니다.

  3. 연결이 실패했습니다

    • 오류 프롬프트 : MySQL 서버가 사라졌습니다 .

    • 해결 방법 : 데이터베이스 연결이 여전히 유효한지 확인하십시오. 특히 오랫동안 사용되지 않은 경우.

요약

mysqli_stmt :: $ 오류를 사용하면 mysqli 쿼리에서 오류를 효과적으로 포착하고 디버깅 할 수 있습니다. 개발자가 문제를 신속하게 찾는 데 도움이 될뿐만 아니라 코드 및 오류 처리 기능의 견고성을 향상시킵니다. 개발 과정에서 우수한 오류 처리 및 디버깅 방법이 효율성을 향상시키는 열쇠입니다. 이 기사가 MySQLI_STMT :: $ 오류를 더 잘 이해하고 사용하여 MySQLI 응용 프로그램을 개발할 때 더 편리하게 만들 수 있기를 바랍니다.