데이터베이스 작업에 PHP의 MySQLI Extension을 사용할 때 MySQLI_STMT :: 준비는 SQL 문을 전처리하는 데 중요한 방법입니다. 전처리 명세서는 보안 및 효율성을 향상시킬 수 있지만, SQL 문에 오류가 있으면 준비 를 실행하는 과정에서 특정 MySQL 오류 코드를 얻는 방법을 이해하는 것은 디버깅에 매우 중요합니다. 이 기사는 MySQLI_STMT :: 준비가 실행되고 관련 단계가 실행될 때 생성 된 MySQL 오류 코드를 얻는 방법을 자세히 소개합니다.
MySQLI_STMT :: 준비 방법은 SQL 문을 전처리하는 데 사용됩니다. 전처리가 성공했는지 여부를 나타내는 부울 값을 반환합니다. 실패하면 관련 속성 또는 메소드를 통해 오류 정보 및 오류 코드를 얻을 수 있습니다.
$stmt = $mysqli->stmt_init();
if (!$stmt->prepare("YOUR SQL HERE")) {
// 전처리가 실패했습니다
}
MySQLI_STMT 객체는 오류 정보를 얻기 위해 두 개의 주요 멤버를 제공합니다.
$ stmt-> errno : 오류 코드 가져 오기 (오류 번호)
$ stmt-> 오류 : 오류 메시지를 가져옵니다
또한 Object $ MySQLI를 연결하여 전역 오류 코드 및 정보를 얻을 수도 있습니다.
아래는 전화를 걸고 오류 코드와 오류 메시지가 실패 할 때 오류 코드를 얻는 방법을 보여주는 샘플 코드입니다.
<?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_errno) {
die("연결이 실패했습니다,오류 코드: " . $mysqli->connect_errno . ",오류 메시지: " . $mysqli->connect_error);
}
// 전처리 명령문 객체를 초기화하십시오
$stmt = $mysqli->stmt_init();
// 전처리 SQL 성명(오류를 유발하기 위해 여기에 불법적으로 작성하십시오)
$sql = "SELEC * FROM users"; // 잘못된 SQL,SELECT 오류 철자
if (!$stmt->prepare($sql)) {
echo "전처리가 실패했습니다!" . PHP_EOL;
echo "오류 코드: " . $stmt->errno . PHP_EOL;
echo "오류 메시지: " . $stmt->error . PHP_EOL;
} else {
echo "전처리成功!" . PHP_EOL;
}
$stmt->close();
$mysqli->close();
?>
위의 코드에서 Select는 의도적으로 SELEC 으로 철자가되고 준비 메소드는 False를 반환합니다.
$ stmt-> errno 및 $ stmt-> 오류를 통해 자세한 오류 코드 및 오류 설명을 얻으십시오.
연결이 실패하면 $ mysqli-> connect_errno 및 $ mysqli-> connect_error를 사용하여 오류 정보를 얻으십시오.
MySQLI_STMT :: 준비 중에 MySQL 오류 코드를 생성하는 것은 주로 MySQLI_STMT 객체의 errno 속성에 따라 다릅니다. 오류 속성과 결합하여 문제를 신속하게 찾아 디버깅을 용이하게 할 수 있습니다. 준비하려면 각 호출 후 반환 값을 감지하고 실패하자마자 오류 코드 및 오류 정보를 읽는 것이 좋습니다.