mysqli_error () 는 개발자에게 가장 친숙한 오류 처리 기능 중 하나입니다. 기능은 데이터베이스 작업이 실패 할 때 오류를 설명하는 문자열을 반환하는 것입니다. 예를 들어, 잘못된 SQL 문을 실행할 때 :
$mysqli = new mysqli("localhost", "user", "password", "database");
$sql = "SELEC * FROM users"; // 우연히 쓰여졌습니다 SELECT
$result = $mysqli->query($sql);
if (!$result) {
echo "SQL 실행 실패: " . mysqli_error($mysqli);
}
출력은 다음과 같은 오류 메시지입니다.
SQL 실행 실패: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEC * FROM users' at line 1
이것은 구문 오류를 포지셔닝하는 데 도움이됩니다.
mysqli_error () 와 달리 mysqli :: $ info는 SQL 문이 성공적으로 실행 된 후 명령문 처리 결과에 대한 더 많은 컨텍스트 정보를 제공합니다. 특히 인서트 , 업데이트 , 삭제 등과 같은 진술을 실행할 때 중복 행을 건너 뛰는 지에 관계없이 영향을받는 행 수를 알 수 있습니다.
예를 들어:
$mysqli = new mysqli("localhost", "user", "password", "database");
$sql = "UPDATE users SET status='active' WHERE last_login < '2024-01-01'";
$mysqli->query($sql);
echo "영향 세부 사항: " . $mysqli->info;
가능한 출력은 비슷합니다.
영향 세부 사항: Rows matched: 3 Changed: 2 Warnings: 0
이는 총 3 행이 일치했지만 실제로 2 행만이 실제로 수정되었음을 의미합니다.
SQL 문을 실행할 때이 두 기능을 함께 사용할 수 있습니다. 문이 실패하면 mysqli_error ()를 사용하여 오류 정보를 얻으십시오. 실행이 성공하면 mysqli :: $ info를 사용하여 실행 세부 정보를 얻으십시오. 이 방법은 배경 관리 패널에서 디버깅, 로깅 및 조작을 표시하는 데 적합합니다.
일반적인 캡슐화 기능은 다음과 같습니다.
function executeQuery($mysqli, $sql) {
if ($mysqli->query($sql) === TRUE) {
return [
'success' => true,
'info' => $mysqli->info
];
} else {
return [
'success' => false,
'error' => mysqli_error($mysqli)
];
}
}
Call example:
$response = executeQuery($mysqli, "UPDATE users SET status='inactive' WHERE id IN (1,2,3)");
if ($response['success']) {
echo "성공적으로 업데이트하십시오,세부 사항은 다음과 같습니다:" . $response['info'];
} else {
echo "업데이트가 실패했습니다,오류 메시지:" . $response['error'];
}
출력 (성공시) :
성공적으로 업데이트하십시오,세부 사항은 다음과 같습니다:Rows matched: 3 Changed: 3 Warnings: 0
출력 (실패시) :
업데이트가 실패했습니다,오류 메시지:Unknown column 'statuz' in 'field list'
데이터 마이그레이션 및 동기화 작업 <br> 많은 양의 데이터를 작성할 때 데이터가 업데이트되는지 건너 뛸 것인지 아는 것은 작업이 성공했는지 여부를 판단하는 데 매우 중요합니다.
무대 뒤에서 통나무 시스템 <br> 관리자의 경우 작업이 성공 여부를 알 수있을뿐만 아니라 영향을 미치는 특정 레코드 수를 이해해야합니다.
자동 테스트 <br> 특정 행에 영향을 줄 것으로 예상되는 경우이 두 기능을 조합하여 사용하면 SQL 문의 정확성을 확인할 수 있습니다.