MySQL 데이터베이스 작업에 PHP를 사용하는 경우 개발자는 일반적으로 반환 된 행 수 또는 실행 성공 여부와 같이 쿼리 결과 자체에 더 많은주의를 기울이며 유용한 디버깅 도구 인 MySQLI :: $ Info Attribute를 쉽게 무시할 수 있습니다. 일부 유형의 SQL 문이 실행 된 후이 속성은 실행 결과에 대한 더 많은 통계를 반환하여 쿼리의 영향을보다 포괄적으로 이해할 수 있도록 도와줍니다.
mysqli :: $ info는 MySQLI 클래스의 읽기 전용 속성이며, 마지막으로 실행 된 SQL 문의 통계 정보를 제공하는 데 사용되며 특히 삽입 , 업데이트 및 로드 데이터 와 같은 수정 된 문에 적합합니다.
이 속성의 반환 값은 문자열이며 컨텐츠 형식은 고정되지 않았지만 일반적으로 영향을받는 줄 수, 반복 라인 수, 경고 줄 수 및 기타 정보와 같은 정보가 포함됩니다. 예를 들어:
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->query("UPDATE users SET status = 'active' WHERE last_login > NOW() - INTERVAL 30 DAY");
echo $mysqli->info;
다음 정보는 출력 될 수 있습니다.
Rows matched: 15 Changed: 15 Warnings: 0
이는 총 15 개의 기록이 일치하고 15 개의 기록이 수정되었으며 경고가 발생하지 않았 음을 알려줍니다.
mysqli :: $ info는 형식으로 된 문자열을 반환합니다. 다음은 일반적인 반환 키워드입니다.
기록 : 처리 된 레코드 수 (주로 로드 데이터 에 사용)
복제 : 중복 레코드의 수
경고 : 실행 중에 나타나는 경고 수
일치하는 행 : 일치 할 행 수 (일반적으로 업데이트 또는 삭제 에 사용됨)
변경 : 실제로 변경된 행 수 (필드 값이 실제로 변경됨을 나타냅니다)
예를 들어:
$mysqli->query("INSERT INTO logs (event, created_at) VALUES ('login', NOW()), ('logout', NOW())");
echo $mysqli->info;
출력은 다음과 같습니다.
Records: 2 Duplicates: 0 Warnings: 0
이는 두 개의 레코드가 삽입되었으며, 중복과 경고가 없음을 나타냅니다.
mysqli :: $ info를 로깅 시스템과 결합하여 데이터베이스 작업의 영향에 대한 자세한 분석을 수행 할 수 있습니다. 예를 들어:
$mysqli->query("UPDATE products SET stock = stock - 1 WHERE id = 101");
$log = sprintf("Query info: %s", $mysqli->info);
file_put_contents("/var/log/db_ops.log", $log . PHP_EOL, FILE_APPEND);
이런 식으로, 인벤토리가 업데이트 될 때마다 영향을받는 행의 수를 녹음 할 수 있으며, 이는 사후 흡연 및 성능 최적화에 도움이됩니다.
지원되는 문서 후에 만 의미가 있습니다 . 선택 쿼리는 일반적으로 빈 문자열을 반환합니다.
오류 처리 메커니즘으로 대체 할 수 없습니다 . 오류보고 도구가 아니라 실행의 영향에 대한 보충 정보입니다.
다중 진술을 실행할 때 마지막 진술 만 반영됩니다 . 다중 상태 쿼리를 사용하는 경우 마지막 쿼리의 실행 만 반영 할 수 있습니다.
언어 버전 차이 : 출력 문자열의 구조는 MySQL과 PHP 버전간에 약간 다를 수 있습니다.
mysqli :: $ info는 비 쿼리 SQL 문을 실행할 때 상세한 통계를 제공하는 간단하지만 실용적인 디버깅 도구입니다. 디버깅, 로깅 및 쿼리 최적화에 대한 중요한 참조 데이터를 제공합니다. 고도로 성능이 있거나 데이터 변경에 민감한 응용 분야에서이를 사용하면 시스템의 관찰 가능성을 크게 향상시킬 수 있습니다.
이 속성에 대한 자세한 내용은 https://gitbox.net/php/mysqli.info 를 참조하십시오.