PHP에서 MySQL 데이터베이스를 사용하는 경우, 쿼리가 성공적으로 실행되는지 여부에주의를 기울이지 만 때로는 쿼리가 성공적으로 실행되지만 데이터 자료, 필드 유형 불일치 등과 같은 경고 정보가 동반 될 수 있지만 이러한 경고 메시지는 종종 무시되며 실제로 문제를 해결하고 데이터베이스 작업을 최적화하는 데 매우 유용합니다.
PHP의 MySQLI Extension은 최신 데이터베이스 작업에서 생성 된 경고 정보를 얻는 데 특별히 사용되는 get_warnings () 메소드를 제공합니다. 이 기사는 데이터베이스 경고를 더 잘 캡처하고 처리 할 수 있도록이 방법의 사용 시나리오 및 특정 사용법을 자세히 소개합니다.
mysqli :: get_warnings () 는 MySQLI 클래스의 메소드로 최신 데이터베이스 작업에서 생성 된 모든 경고를 포함하는 MySQLI_Warning 객체를 반환합니다. 이 객체를 가로 질러 각 경고에 대한 오류 코드와 세부 사항을 얻을 수 있습니다.
이 방법은 삽입 또는 업데이트 중에 잘린 데이터, 불완전한 일치 필드 유형을 사용하거나 특정 MySQL 기능을 수행하지만 비 치명적 경고를 반환하는 등의 실행이 성공적이지만 잠재적 인 문제가있는 SQL 문에 특히 적합합니다.
다음은 mysqli :: get_warnings () 의 사용을 보여주는 간단한 예입니다. 길이 제한을 정의하는 문자열 필드에 추가 긴 데이터를 삽입한다고 가정하면 경고가 트리거됩니다.
<?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli('gitbox.net', 'username', 'password', 'testdb');
if ($mysqli->connect_errno) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 샘플 테이블을 만듭니다
$mysqli->query("CREATE TABLE IF NOT EXISTS test_warning (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(5)
)");
// 여분의 긴 문자열을 삽입하십시오,트리거 경고
$mysqli->query("INSERT INTO test_warning (name) VALUES ('길이 이상의 문자열을 테스트합니다')");
// 경고 정보를 얻으십시오
$warnings = $mysqli->get_warnings();
if ($warnings) {
do {
printf("경고 코드: %d, 정보: %s\n", $warnings->errno, $warnings->message);
} while ($warnings->next());
} else {
echo "无警告정보。\n";
}
// 연결을 닫으십시오
$mysqli->close();
?>
위 코드에서 :
필드 길이 제한을 초과하는 문자열을 삽입했습니다. MySQL은 삽입을 수행하지만 문자열을 자르고 경고를 초래합니다.
$ mysqli-> get_warnings () 를 사용하여 경고 객체를 얻으십시오.
루프에서 $ 경고-> next ()를 호출함으로써 모든 경고 및 출력 세부 사항을 반복하십시오.
경고 데이터가 삽입되거나 업데이트 될 때 <br> 데이터의 유효성에 대한 엄격한 요구 사항이 있으면 경고 메시지를 사용하면 잠재적 데이터 손실 또는 형식 오류를 감지 할 수 있습니다.
복잡한 SQL 작업 디버깅 <br> 일부 복잡한 쿼리 또는 저장된 절차는 경고를 반환 할 수 있으며이 방법을 사용하면 디버깅에 도움이 될 수 있습니다.
로깅 및 모니터링 <br> 경고를 자동으로 가져 와서 로그에 작성하고 운영 및 유지 보수 직원이 적시에 데이터베이스 예외를 발견하도록 지원합니다.
mysqli :: get_warnings ()는 작업 결과에 영향을 미치지 않지만 데이터 품질에 영향을 줄 수있는 경고를 캡처하고 처리하는 데 도움이되는 매우 실용적인 도구입니다. 합리적으로 응용 프로그램을보다 강력하고 안정적으로 만들 수 있습니다.
PHP 및 MySQL 사용에 대한 자세한 내용은 https://gitbox.net을 방문하여 최신 자습서 및 예를 보려면.