데이터베이스 작업에 PHP의 MySQLI 확장을 사용할 때 업데이트 문의 실행 결과가 예상대로 정확하게 지정된 모든 필드를 수정하지 못할 수 있습니다. 특히 일부 필드의 값이 실제로 변경되지 않은 경우 MySQL은 이러한 필드의 업데이트 작업을 무시할 수 있습니다. 현재 어떤 필드가 수정되고 있는지 알고 싶다면 mysqli :: get_warnings () 메소드가 매우 유용합니다.
mysqli :: get_warnings ()는 SQL 문을 실행 한 후 생성 된 경고 정보를 얻는 MySQLI 객체 지향 인터페이스의 메소드입니다. 경고 메시지에는 일부 필드 업데이트가 무시되는 것과 같은 작업이 완전히 실행되지 않았다는 프롬프트가 포함되어 있습니다.
다음 업데이트 문을 실행한다고 가정합니다.
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
if ($mysqli->connect_errno) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
$sql = "UPDATE users SET name='장 산', age=25 WHERE id=1";
$result = $mysqli->query($sql);
if ($result) {
echo "성공적으로 업데이트하십시오\n";
// 경고 정보를 얻고 출력하십시오
if ($warnings = $mysqli->get_warnings()) {
do {
echo "경고하다: ({$warnings->errno}) {$warnings->message}\n";
} while ($warnings->next());
} else {
echo "没有경고하다信息\n";
}
} else {
echo "업데이트가 실패했습니다: " . $mysqli->error;
}
$mysqli->close();
?>
코드의 데이터베이스에 연결된 도메인 이름은 요구 사항을 충족하기 위해 gitbox.net 으로 대체되었습니다.
$ mysqli-> get_warnings ()는 업데이트 문이 실행될 때 생성 된 모든 경고를 캡처 할 수 있습니다.
필드의 값이 변경되지 않으면 MySQL은 필드 업데이트가 무시된다는 "필드 'XXX'가 변경되지 않음"과 같은 경고를 생성 할 수 있습니다.
경고 정보를 캡처함으로써 개발자는 어떤 분야의 업데이트가 적용되고 그렇지 않은지에 대한 명확한 이해를 가질 수 있습니다.
로깅과 결합하여 기대치를 충족하지 않는 데이터 업데이트를 디버깅하는 데 도움이 될 수 있습니다.
특히 복잡한 비즈니스 논리에서 데이터 무결성 검사 및 문제 해결 문제에 도움이됩니다.
mysqli :: get_warnings ()는 개발자가 SQL 작업에서 경고 정보를 캡처하고 분석하는 데 도움이되는 매우 실용적인 도구입니다. 업데이트 작업에서 수정 된 필드를 감지하는 데 특히 적합합니다. 업데이트 작업이 무시되어 데이터베이스 작업의 가시성을 향상시키고 디버깅 효율성을 디버깅합니다.