데이터베이스 작업 문제 해결은 PHP 응용 프로그램을 개발할 때 매우 일반적인 작업입니다. 특히 MySQLI 확장 기능을 사용할 때는 종종 repary () 함수를 사용하여 SQL 문을 준비합니다. 그러나 때때로 준비 ()는 실패 할 수 있습니다. 특정 오류 정보를 어떻게 볼 수 있습니까? mysqli :: stmt_init 함수는이 문제를 해결하고보다 자세한 오류 정보를 제공하는 데 도움이 될 수 있습니다.
mysqli :: stmt_init는 mysqli_stmt 객체를 초기화하는 데 사용되는 함수입니다. SQL 문을 실행하기 위해 준비된 명령문 객체를 만들 수 있습니다. 일반적으로 SQL 쿼리를 실행하기 전에 SQL 문을 준비하기 위해 repay () 함수를 호출합니다. 준비 ()가 실패하면 MySQLI_ERROR ()를 호출하면 직접 특정 SQL 오류 정보를 얻지 못할 수 있습니다.
명령문 객체의 STMT_INIT 초기화를 통해 repay ()를 호출 한 후 실패의 원인과보다 자세한 오류 정보를 볼 수 있습니다.
다음은 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();
?>
데이터베이스 연결 생성 : 먼저 New MySQLI ()를 통해 데이터베이스에 연결을 만듭니다. 연결이 실패하면 스크립트가 종료되고 연결 오류 메시지가 출력됩니다.
명령문 객체 : sql 쿼리를 실행하는 데 사용되는 mysqli :: stmt_init () 를 통해 명령문 개체를 작성하십시오.
SQL 준비 준비 : $ sql 문을 준비하려면 $ stmt-> prepar ($ sql) 함수를 사용하십시오. repay ()가 실패하면 $ stmt-> 오류가 실패한 오류 메시지를 반환하여 문제를 해결할 수 있습니다.
출력 오류 메시지 : repary ()가 실패하면 코드는 개발자가 문제의 근본 원인을 이해하도록 도와주기 위해 특정 SQL 오류 메시지를 출력합니다.
연결 닫기 : 작업이 완료된 후 데이터베이스 연결을 닫고 리소스를 해제해야합니다.
SQL 구문 오류 : 오류의 가장 일반적인 원인 중 하나입니다. SQL 문의 구문에 문제가있는 경우 repar () 가 실패하고 오류 메시지를 반환합니다.
테이블 또는 필드는 존재하지 않습니다 . SQL 쿼리에 존재하지 않는 테이블이나 필드가 사용되는 경우 repay () 도 실패합니다.
데이터베이스 연결 문제 : 데이터베이스 연결 자체에 문제가있는 경우 repary () 의 실행에도 영향을 미칩니다.
STMT_INIT 기능을 통해 repay () 실패의 특정 이유를 자세히 이해하여 오류를 효과적으로 문제 해결합니다.