현재 위치: > 최신 기사 목록> 준비 ()가 실패 할 때 특정 SQL 오류 메시지를 보는 방법

준비 ()가 실패 할 때 특정 SQL 오류 메시지를 보는 방법

M66 2025-05-29

데이터베이스 작업 문제 해결은 PHP 응용 프로그램을 개발할 때 매우 일반적인 작업입니다. 특히 MySQLI 확장 기능을 사용할 때는 종종 repary () 함수를 사용하여 SQL 문을 준비합니다. 그러나 때때로 준비 ()는 실패 할 수 있습니다. 특정 오류 정보를 어떻게 볼 수 있습니까? mysqli :: stmt_init 함수는이 문제를 해결하고보다 자세한 오류 정보를 제공하는 데 도움이 될 수 있습니다.

mysqli :: stmt_init 란 무엇입니까?

mysqli :: stmt_init는 mysqli_stmt 객체를 초기화하는 데 사용되는 함수입니다. SQL 문을 실행하기 위해 준비된 명령문 객체를 만들 수 있습니다. 일반적으로 SQL 쿼리를 실행하기 전에 SQL 문을 준비하기 위해 repay () 함수를 호출합니다. 준비 ()가 실패하면 MySQLI_ERROR ()를 호출하면 직접 특정 SQL 오류 정보를 얻지 못할 수 있습니다.

명령문 객체의 STMT_INIT 초기화를 통해 repay ()를 호출 한 후 실패의 원인과보다 자세한 오류 정보를 볼 수 있습니다.

샘플 코드 : mysqli :: stmt_init을 사용하여 준비 () 오류를 보는 방법

다음은 mysqli :: stmt_init를 사용하여 SQL 문을 처리하는 샘플 코드입니다.

 <?php
// 데이터베이스 연결 설정
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test_db';

// 만들다 MySQLi 연결하다
$mysqli = new mysqli($host, $username, $password, $dbname);

// 检查연결하다是否成功
if ($mysqli->connect_error) {
    die("연결하다失败: " . $mysqli->connect_error);
}

// 사용 stmt_init 초기화 SQL 진술 대상
$stmt = $mysqli->stmt_init();

// 준비하다 SQL 성명
$sql = "SELECT * FROM non_existing_table WHERE id = ?";

// 통과하다 stmt_init 기능보기 prepare() 실패시 오류 메시지
if (!$stmt->prepare($sql)) {
    // prepare 실패시,출력에 따라 SQL 오류 메시지
    echo "SQL 실수: " . $stmt->error;
} else {
    echo "SQL 준비하다成功!";
}

// 关闭연결하다
$stmt->close();
$mysqli->close();
?>

코드 구문 분석 :

  1. 데이터베이스 연결 생성 : 먼저 New MySQLI ()를 통해 데이터베이스에 연결을 만듭니다. 연결이 실패하면 스크립트가 종료되고 연결 오류 메시지가 출력됩니다.

  2. 명령문 객체 : sql 쿼리를 실행하는 데 사용되는 mysqli :: stmt_init () 를 통해 명령문 개체를 작성하십시오.

  3. SQL 준비 준비 : $ sql 문을 준비하려면 $ stmt-> prepar ($ sql) 함수를 사용하십시오. repay ()가 실패하면 $ stmt-> 오류가 실패한 오류 메시지를 반환하여 문제를 해결할 수 있습니다.

  4. 출력 오류 메시지 : repary ()가 실패하면 코드는 개발자가 문제의 근본 원인을 이해하도록 도와주기 위해 특정 SQL 오류 메시지를 출력합니다.

  5. 연결 닫기 : 작업이 완료된 후 데이터베이스 연결을 닫고 리소스를 해제해야합니다.

처리에 대한 일반적인 이유 준비 () 오류

  1. SQL 구문 오류 : 오류의 가장 일반적인 원인 중 하나입니다. SQL 문의 구문에 문제가있는 경우 repar () 가 실패하고 오류 메시지를 반환합니다.

  2. 테이블 또는 필드는 존재하지 않습니다 . SQL 쿼리에 존재하지 않는 테이블이나 필드가 사용되는 경우 repay () 도 실패합니다.

  3. 데이터베이스 연결 문제 : 데이터베이스 연결 자체에 문제가있는 경우 repary () 의 실행에도 영향을 미칩니다.

STMT_INIT 기능을 통해 repay () 실패의 특정 이유를 자세히 이해하여 오류를 효과적으로 문제 해결합니다.